我的表架構是這樣的..在不同行和列上的兩個日期之間的區別?
Load_ID | StopType | Departure_Date | Arrival_Date
有兩種類型的停車PK(皮卡)或DL(交貨)
如果停止類型是PK然後出發日期存在,如果停類型是DL,那麼交貨日期存在。對於每個出發和配送情侶來說,加載ID是相同的。這對我來說更復雜的是,它們並不總是彼此相鄰。我應該使用什麼查詢?
我的表架構是這樣的..在不同行和列上的兩個日期之間的區別?
Load_ID | StopType | Departure_Date | Arrival_Date
有兩種類型的停車PK(皮卡)或DL(交貨)
如果停止類型是PK然後出發日期存在,如果停類型是DL,那麼交貨日期存在。對於每個出發和配送情侶來說,加載ID是相同的。這對我來說更復雜的是,它們並不總是彼此相鄰。我應該使用什麼查詢?
你可以嘗試這樣的事情:
select Load_ID, max(Departure_Date), max(Arrival_Date)
from Table
group by Load_ID
此查詢將返回每負載兩個日期,下一步通過DATEDIFF
計算的區別,是這樣的:
select Load_ID, DATEDIFF(max(Arrival_Date), max(Departure_Date)) as diff
from Table
group by Load_ID
槽糕。我真的不明白這個問題,但我會嘗試和讀心術:
with myCte
as
(
SELECT
Load_ID, Max(Depature_date) as DDate, max(Arrival_Date) as ADate
from myTable
group by Load_ID
)
select Load_ID, DateDiff(day,DDate, ADate) as DateDifference
我會假設你永遠不能有每種類型的不止一個。如果這些值是否爲空值,那麼只需使用簡單的min()
即可,不需要case
表達式。計算差異很容易,現在數據連在一起。 (這聽起來像你的表的設計不是很理想,但。)
select
Load_ID,
min(case when StopType = 'PK' then Departure_Date end) as Departure_Date),
min(case when StopType = 'DL' then Arrival_Date) as Arrival_Date
from T
group by Load_ID
您可以在一個查詢做到這一點:
SELECT
Load_ID, MAX(Depature_date) as departDate, MAX(Arrival_Date) as arriveDate, DateDiff(day,MAX(Depature_date),MAX(Arrival_Date)) as DateDiff
FROM mailboxfilefilters
GROUP BY Load_ID
這是假設您想要的之間的區別間隔2日期以天爲單位。
你想要什麼樣的差異? – tadman
*我應該使用什麼查詢?*您希望查詢做什麼? –
我不明白他們如何在不同的行中。你可以添加一些樣本數據和預期結果嗎? – AdamMc331