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

标签 mysql sql sql-server

我正在尝试编写一个 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/

相关文章:

php - 将数据排序到匹配列 PHP

mysql - 优化MySQL操作以获取计数

sql - 你能写一个关键字之间没有空格的sql语句吗

html - 在sql server客户端报告(rdlc)中渲染html代码

sql - 从表中选择 8k+ 行的最佳方法

mysql - 获取有限制的数据库连接表

mysql - 多个字段的最常见值

ios - 使用新的预写日志 (WAL) 日志记录预填充核心数据 SQL 存储

sql - 删除编号重复超过 5 次的记录

asp.net - 在一个查询中插入多条记录