您的位置:首页 > 产品设计 > UI/UE

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

2014-05-23 16:17 405 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐