##问题背景:表结构如下
字段名 字段类型
资产根码 VARCHAR2
交易日 DATE
想统计当前交易日的数据总量和上个交易日数据总量的差值是否大于10,若大于10则需返回结果(当前交易日+当天数据总条数),这段sql应该怎么写呀
子查询出交易总量后作为条件判断是否满足。
什么数据库
可以参考下面,2022-06-02就是要查询的当前交易日,2022-06-01就是上个交易日,可以替换成实际对应参数处理:
SELECT * FROM ( SELECT date, num1 AS num,( num1 - num2 ) AS sub
FROM
(
SELECT
date,
( SELECT count(*) FROM order_item WHERE date( '2022-06-02' ) = date ) AS num1,
( SELECT count(*) FROM order_item WHERE date( '2022-06-01' ) = date ) AS num2
FROM
order_item
WHERE
date( '2022-06-02' ) = date
GROUP BY
date
) a
) b
WHERE
b.sub > 10
sub就是差异值(我这里是大于0查出来的,这里例子没那么多数据)
sql server 什么版本的?
试下以下:
SELECT a.当天数据总条数,a.交易日 from (
SELECT
sum(case when DATEDIFF(day,交易日,GETDATE())=0 THEN 1 else 0 end)-sum(case when DATEDIFF(day,交易日,GETDATE())=1 THEN 1 else 0 end) as 差值
,sum(case when DATEDIFF(day,交易日,GETDATE())=0 THEN 1 else 0 end) as 当天数据总条数
,交易日
FROM message WHERE DATEDIFF(day,交易日,GETDATE())>=0 and DATEDIFF(day,交易日,GETDATE())<=1 group by 交易日
) a
where a.差值>=10