我试图编写一个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。
有什么想法吗?
答案 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