表的结构大致如下:
卡号 交易日期 交易金额
123 1.1 111
123 1.1 59
456 1.1 110
123 1.2 36
123 1.2 78
456 1.2 89
456 1.2 55
每张卡号每天都会发生大量交易,现在想查询 所有单日有2笔或以上金额超过50元的交易情况
已商标为例,查询结果应该是
123 1.1 111
123 1.1 59
456 1.2 89
456 1.2 55另外还想查询3日有2笔或以上金额超过50元的交易情况
卡号 交易日期 交易金额
123 1.1 111
123 1.1 59
456 1.1 110
123 1.2 36
123 1.2 78
456 1.2 89
456 1.2 55
每张卡号每天都会发生大量交易,现在想查询 所有单日有2笔或以上金额超过50元的交易情况
已商标为例,查询结果应该是
123 1.1 111
123 1.1 59
456 1.2 89
456 1.2 55另外还想查询3日有2笔或以上金额超过50元的交易情况
卡号,交易日期,交易金额
from
tb
where
交易金额 > 50
group by
卡号,交易日期
having
count(1)>=2
IF OBJECT_ID('table1') IS NOT NULL
DROP TABLE table1
GO
CREATE TABLE table1( 卡号 varchar(12), 交易日期 varchar(12), 交易金额 int)
go
/*
IF OBJECT_ID('table2') IS NOT NULL
DROP TABLE table2
GO
CREATE TABLE table2( item_A varchar(12), [name] varchar(12), docid varchar(12) )
goIF OBJECT_ID('table3') IS NOT NULL
DROP TABLE table3
GO
CREATE TABLE table3( docid varchar(12), des varchar(12), item_number varchar(12))
go
*/
insert table1 select
'123' , '01-01' , 111 union all select
'123' , '01-01' , 59 union all select
'456' , '01-01' , 110 union all select
'123' , '01-02' , 36 union all select
'123' , '01-02', 78 union all select
'456' , '01-02', 89 union all select
'456' , '01-02', 55 select t.* from table1 t
join (
select 卡号, 交易日期 from table1
where 交易金额>50
group by 卡号, 交易日期 having(count(*)>1)
)b
on t.卡号=b.卡号 and t.交易日期=b.交易日期卡号 交易日期 交易金额
------------ ------------ -----------
123 01-01 111
123 01-01 59
456 01-02 89
456 01-02 55(4 行受影响)