ID号 卡号 消费机号 消费金额 消费余额 消费时间 消费方式
309 34939 2 5.0000 30.6000 2006-05-04 17:00:00.000 正常消费
消费明细
3493930.6-502006-05-04 17:00:002正常消费
309 34939 2 5.0000 25.6000 2006-05-05 11:10:00.000 正常消费 3493925.6-502006-05-05 11:10:002正常消费
309 34939 2 5.0000 20.6000 2006-05-06 16:49:00.000 正常消费 3493920.6-502006-05-06 16:49:002正常消费
309 34939 2 5.0000 10.6000 2006-05-08 17:19:00.000 正常消费 3493910.6-502006-05-08 17:19:002正常消费
682 42307 5 5.0000 50.1000 2006-05-03 11:21:00.000 正常消费 4230750.1-502006-05-03 11:21:005正常消费
682 42307 4 7.0000 38.1000 2006-05-07 17:27:00.000 正常消费 4230738.1-702006-05-07 17:27:004正常消费
682 42307 2 5.0000 33.1000 2006-05-08 11:34:00.000 正常消费 4230733.1-502006-05-08 11:34:002正常消费
682 42307 5 5.0000 28.1000 2006-05-08 17:01:00.000 正常消费 4230728.1-502006-05-08 17:01:005正常消费
682 42307 5 3.0000 25.1000 2006-05-08 17:02:00.000 正常消费 4230725.1-302006-05-08 17:02:005正常消费
在5月7日哪天掉了一些数据,通过消费明细可以看出来,用一条sql语句查出卡号所对应的掉失消费金额。
309 34939 2 5.0000 30.6000 2006-05-04 17:00:00.000 正常消费
消费明细
3493930.6-502006-05-04 17:00:002正常消费
309 34939 2 5.0000 25.6000 2006-05-05 11:10:00.000 正常消费 3493925.6-502006-05-05 11:10:002正常消费
309 34939 2 5.0000 20.6000 2006-05-06 16:49:00.000 正常消费 3493920.6-502006-05-06 16:49:002正常消费
309 34939 2 5.0000 10.6000 2006-05-08 17:19:00.000 正常消费 3493910.6-502006-05-08 17:19:002正常消费
682 42307 5 5.0000 50.1000 2006-05-03 11:21:00.000 正常消费 4230750.1-502006-05-03 11:21:005正常消费
682 42307 4 7.0000 38.1000 2006-05-07 17:27:00.000 正常消费 4230738.1-702006-05-07 17:27:004正常消费
682 42307 2 5.0000 33.1000 2006-05-08 11:34:00.000 正常消费 4230733.1-502006-05-08 11:34:002正常消费
682 42307 5 5.0000 28.1000 2006-05-08 17:01:00.000 正常消费 4230728.1-502006-05-08 17:01:005正常消费
682 42307 5 3.0000 25.1000 2006-05-08 17:02:00.000 正常消费 4230725.1-302006-05-08 17:02:005正常消费
在5月7日哪天掉了一些数据,通过消费明细可以看出来,用一条sql语句查出卡号所对应的掉失消费金额。
select * from bb where id not in(select id from aa)
--建立測試環境
Create Table TEST
(ID号 Int,
卡号 Int,
消费机号 Int,
消费金额 Numeric(10,4),
消费余额 Numeric(10,4),
消费时间 DateTime,
消费方式 Nvarchar(20))
--插入數據
Insert TEST Select 309, 34939, 2, 5.0000, 25.6000, '2006-05-05 11:10:00.000', N'正常消费'
Union All Select 309, 34939, 2, 5.0000, 20.6000, '2006-05-06 16:49:00.000', N'正常消费'
Union All Select 309, 34939, 2, 5.0000, 10.6000, '2006-05-08 17:19:00.000', N'正常消费'
Union All Select 682, 42307, 5, 5.0000, 50.1000, '2006-05-03 11:21:00.000', N'正常消费'
Union All Select 682, 42307, 4, 7.0000, 38.1000, '2006-05-07 17:27:00.000', N'正常消费'
Union All Select 682, 42307, 2, 5.0000, 33.1000, '2006-05-08 11:34:00.000', N'正常消费'
Union All Select 682, 42307, 5, 5.0000, 28.1000, '2006-05-08 17:01:00.000', N'正常消费'
Union All Select 682, 42307, 5, 3.0000, 25.1000, '2006-05-08 17:02:00.000', N'正常消费'
GO
--測試
Select
ID号,
卡号,
(Select TOP 1 消费余额 From TEST Where 消费时间<A.消费时间 And 卡号=A.卡号 Order By 消费时间 Desc)-消费余额-消费金额 As 消费金额
From TEST A
Where 消费余额+消费金额<>(Select TOP 1 消费余额 From TEST Where 消费时间<A.消费时间 And 卡号=A.卡号 Order By 消费时间 Desc)
GO
--刪除測試環境
Drop Table TEST
--結果
/*
ID号 卡号 消费余额
309 34939 5.0000
682 42307 5.0000
*/
874 00023 2 5.0000 110.1000 2006-04-14 16:52:00.000 正常消费 00023110.1-502006-04-14 16:52:002正常消费
874 00023 2 5.0000 105.1000 2006-04-16 11:07:00.000 正常消费 00023105.1-502006-04-16 11:07:002正常消费
874 00023 2 5.0000 100.1000 2006-04-16 17:14:00.000 正常消费 00023100.1-502006-04-16 17:14:002正常消费
874 00023 2 5.0000 95.1000 2006-04-18 16:53:00.000 正常消费 0002395.1-502006-04-18 16:53:002正常消费
874 00023 2 5.0000 90.1000 2006-04-19 11:05:00.000 正常消费 0002390.1-502006-04-19 11:05:002正常消费
874 00023 2 5.0000 85.1000 2006-04-20 16:53:00.000 正常消费 0002385.1-502006-04-20 16:53:002正常消费
874 00023 2 5.0000 80.1000 2006-04-21 16:53:00.000 正常消费 0002380.1-502006-04-21 16:53:002正常消费
874 00023 2 5.0000 75.1000 2006-04-22 17:16:00.000 正常消费 0002375.1-502006-04-22 17:16:002正常消费
874 00023 2 5.0000 70.1000 2006-04-23 11:07:00.000 正常消费 0002370.1-502006-04-23 11:07:002正常消费
874 00023 2 5.0000 65.1000 2006-04-23 16:51:00.000 正常消费 0002365.1-502006-04-23 16:51:002正常消费
874 00023 2 5.0000 60.1000 2006-04-25 16:51:00.000 正常消费 0002360.1-502006-04-25 16:51:002正常消费
874 00023 2 5.0000 55.1000 2006-04-27 16:52:00.000 正常消费 0002355.1-502006-04-27 16:52:002正常消费
874 00023 2 5.0000 50.1000 2006-04-28 16:53:00.000 正常消费 0002350.1-502006-04-28 16:53:002正常消费
874 00023 2 5.0000 45.1000 2006-04-29 17:20:00.000 正常消费 0002345.1-502006-04-29 17:20:002正常消费
874 00023 2 5.0000 40.1000 2006-04-30 11:27:00.000 正常消费 0002340.1-502006-04-30 11:27:002正常消费
874 00023 2 5.0000 35.1000 2006-05-01 11:12:00.000 正常消费 0002335.1-502006-05-01 11:12:002正常消费
874 00023 2 5.0000 30.1000 2006-05-03 11:26:00.000 正常消费 0002330.1-502006-05-03 11:26:002正常消费
874 00023 2 5.0000 25.1000 2006-05-03 16:52:00.000 正常消费 0002325.1-502006-05-03 16:52:002正常消费
874 00023 2 5.0000 20.1000 2006-05-04 16:52:00.000 正常消费 0002320.1-502006-05-04 16:52:002正常消费
874 00023 2 5.0000 15.1000 2006-05-05 11:08:00.000 正常消费 0002315.1-502006-05-05 11:08:002正常消费
874 00023 2 5.0000 10.1000 2006-05-06 17:29:00.000 正常消费 0002310.1-502006-05-06 17:29:002正常消费
874 00023 2 5.0000 .1000 2006-05-07 17:26:00.000 正常消费 000230.1-502006-05-07 17:26:002正常消费
从最后两条记录中可以,在最后两条记录中间掉了一条记录,,用一条sql语句查出卡号所对应的掉失消费金额。