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语句查出卡号所对应的掉失消费金额。

解决方案 »

  1.   

    掉了就肯定没有数据啦.要是你上面的就是掉的记录的话.insert aa
    select * from bb where id not in(select id from aa)
      

  2.   


    --建立測試環境
    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
    */
      

  3.   

    874 00023 2 5.0000 115.1000 2006-04-13 16:52:00.000 正常消费 00023115.1-502006-04-13 16:52:002正常消费
    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语句查出卡号所对应的掉失消费金额。