在给定时间段内每天2个最大日期之间的日期差异

时间:2016-10-27 17:18:14

标签: mysql sql sql-server

我试图编写一个sql查询来返回每天给定位置的关闭时间和当天最终销售之间的差异。

数据库架构类似于:

Store_Closing_table(storeCloseTime,storeId) store_sale_table(saleTime,storeID)

我写了以下内容(伪代码):

select max(storeCloseTime), 
max(saleTime), datediff(mi, max(saletime), 
max(storeCloseTime)) as timeDifference, storeID 
from store_closing_table a
inner join store_sale_table b
on a.storeid = b.storeid
group by storeid, convert(date, saletime), convert(date, storeCloseTime)

返回当天最终销售与商店关闭时间之间的时差,但仅限于最近的日期(即最长日期)。

我不确定如何获得每天的最长销售日期和每天的最长商店关闭时间(有些情况下商店一天内不止一次关闭)然后得到两者之间的约会。

任何建议将不胜感激。

编辑:我修改了查询以包含group by子句,这让我更接近,但我得到了每个商店销售和每个商店关闭时间之间的差异。

即。 商店3天内有3个销售。我正在接近1 - 销售a,关闭1 - 销售b,关闭1 - 销售c,关闭2 - 销售a,关闭2 - 销售b,关闭2 - 销售c,关闭3 - 销售a,关闭3 - 销售b,关闭3 - 销售c。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

请试试这个。

WITH cte
AS ( 
       select StoreID,
              CONVERT(DATE, storeCloseTime) AS [Date], 
              max(storeCloseTime) as storeCloseTime,
              max(saleTime) as SaleTime,
         FROM Store_closing_table AS a
         JOIN Store_sale_table AS b ON a.storeid = b.storeid
        GROUP BY StoreID, CONVERT(DATE, storeCloseTime)
    )
       SELECT StoreID, [Date], StoreCloseTime, SaleTime
              datediff(mi, saletime, storeCloseTime) as timeDifference