2015-07-21 13 views
0

我的表架構是這樣的..在不同行和列上的兩個日期之間的區別?

Load_ID | StopType | Departure_Date | Arrival_Date 

有兩種類型的停車PK(皮卡)或DL(交貨)

如果停止類型是PK然後出發日期存在,如果停類型是DL,那麼交貨日期存在。對於每個出發和配送情侶來說,加載ID是相同的。這對我來說更復雜的是,它們並不總是彼此相鄰。我應該使用什麼查詢?

+0

你想要什麼樣的差異? – tadman

+0

*我應該使用什麼查詢?*您希望查詢做什麼? –

+0

我不明白他們如何在不同的行中。你可以添加一些樣本數據和預期結果嗎? – AdamMc331

回答

0

你可以嘗試這樣的事情:

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 
0

槽糕。我真的不明白這個問題,但我會嘗試和讀心術:

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 
0

我會假設你永遠不能有每種類型的不止一個。如果這些值是否爲空值,那麼只需使用簡單的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 
0

您可以在一個查詢做到這一點:

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日期以天爲單位。

相關問題