我有以下数据集:
ID PeriodID Account Amount
1 1000 Y0001 100.00
2 1000 M0001 20.00
3 1000 Y0002 75.00
4 1000 M0002 15.00
5 1000 Y0003 100.00
6 1000 Y0004 200.00
我需要编写一个查询,只要存在“Y”帐户而没有“M”帐户,则返回零,例如:
PeriodID Account Amount
1000 Y0001 100.00
1000 M0001 20.00
1000 Y0002 75.00
1000 M0002 15.00
1000 Y0003 100.00
1000 Y0003 0.00
1000 Y0004 200.00
1000 Y0004 0.00
有什么建议吗?
最佳答案
也许不是最有效的方法,但这应该可以满足您的需求:
SELECT PeriodID, Account, Amount
FROM myTable
UNION ALL
SELECT PeriodID, Account, 0.00 AS Amount
FROM myTable A
WHERE NOT EXISTS (
SELECT * FROM myTable B
WHERE B.Account = 'M' + SUBSTRING(A.Account, 2, LEN(A.Account) - 1)
)
关于sql - SQL 查询连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9253601/