嗨,我对如何执行此查询感到困惑。
我有桌子:
transactiondetails
-> TransactionDetailsID
-> TerminalID
-> SiteID
-> TransactionType
-> Amount
terminals
-> TerminalID
-> TerminalName
-> TerminalType
现在,在表terminal.TerminalType上,值可以为0或1。
在我的交易细节中,我需要找到终端的总数。表中特定SiteID中的TerminalType = 1
transactiondetails,所以我的查询是
SELECT
CASE
WHEN b.TerminalType IN (1) then COUNT(a.TerminalID)
ELSE 0 END AS TotalGenesis, a.SiteID
FROM npos.transactiondetails a
LEFT JOIN npos.terminals b ON a.TerminalID = b.TerminalID
WHERE a.SiteID = 167;
但是,即使我的transactiondetails中的TerminalType = 1,TotalGenesis的结果也为零。
谢谢您的帮助。
最佳答案
使用此查询。代替使用IN
,使用equal(=)符号。见下文:
SELECT
CASE
WHEN b.TerminalType = 1 THEN COUNT(a.TerminalID)
ELSE 0
END AS TotalGenesis,
a.SiteID
FROM npos.transactiondetails a
LEFT JOIN npos.terminals b ON a.TerminalID = b.TerminalID
WHERE a.SiteID = 167;