我正在尝试编写一个 SQL 查询来返回给定位置每天的关闭时间和当天最终销售之间的差异。
数据库架构类似于:
Store_Closing_table(storeCloseTime, storeId) store_sale_table(销售时间, 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.
有什么想法吗?
最佳答案
请尝试一下。
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
关于mysql - 给定时间段内每天 2 个最大日期之间的日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40290649/