We need the sql script to query the table Ditronics.Kiosk.Journal to find journal with mismatch denom information versus amount.

时间:2014-05-26 06:25:35   收藏:0   阅读:325
bubuko.com,布布扣
        CREATE TABLE #MoneyTable
            (
              Id INT IDENTITY(1, 1)
                     PRIMARY KEY ,
              MoneyName VARCHAR(50) ,
              Cents INT
            )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( UnSupported, 0 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( DollarOne, 100 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( DollarTwo, 200 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( DollarFive, 500 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( DollarTen, 1000 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( DollarTwenty, 2000 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( DollarFifty, 5000 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( DollarHundred, 10000 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( CentOne, 1 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( CentFive, 5 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( CentTen, 10 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( CentTwentyFive, 25 )
        INSERT  INTO #MoneyTable
                ( MoneyName, Cents )
        VALUES  ( CentFifty, 50 )      
            
         
        SELECT  id ,
                Payload.value((TransactionJournal/TransactionDetail/BillBreakTransactionDetail/BillBreakDetail/MoneyDenom/denom)[1],
                              varchar(50)) AS MoneyName ,
                Payload.value((TransactionJournal/TransactionDetail/Amount)[1],
                              int) AS Cents ,
                Payload.value((TransactionJournal/TransactionDualDetail/BillBreakTransactionDetail/BillBreakDetail/MoneyDenom/denom)[1],
                              varchar(50)) AS DualMoneyName ,
                Payload.value((TransactionJournal/TransactionDualDetail/Amount)[1],  --2.Search the specified node in the specified field
                              int) AS DualCents
        INTO    #tempJournal   --1.Don‘t to state create #tempJournal
        FROM    Kiosk.Journal
        WHERE   ModuleTypeId = 3
        
       
       

        SELECT  *
        FROM    Kiosk.Journal
        WHERE   id NOT IN ( SELECT  t1.id
                            FROM    #tempJournal t1 ,
                                    #MoneyTable t2
                            WHERE   ( t1.MoneyName = t2.MoneyName
                                      AND t1.Cents = t2.Cents
                                      AND t1.DualMoneyName IS NULL
                                      AND t1.DualCents IS NULL
                                    )
                                    OR ( t1.DualMoneyName = t1.MoneyName
                                         AND t1.DualCents = t2.Cents
                                         AND t1.MoneyName IS NULL
                                         AND t1.Cents IS NULL
                                       ) )
                AND ModuleTypeId = 3

        DROP TABLE #MoneyTable
        DROP TABLE #tempJournal
 
                

        
    
bubuko.com,布布扣

 

We need the sql script to query the table Ditronics.Kiosk.Journal to find journal with mismatch denom information versus amount.,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!