因此,我希望找到一个‘帐户’从TableA (帐户表)的列表,其中有两个特定值设置在表B(信息表)。
表A列出了所有帐户、开业日期、参考资料等,表B包含这些帐户编号和所有特定帐户信息。
我想要一个在表B中设置了两个特定值的帐户列表。
表和列:
表A:账号,账号还开着吗?
表B:账号、信息号、信息数据
我想要一个TableA中所有帐户的列表,其中在表B中,信息编号1等于10,信息编号2等于20。
示例数据:
表A
Account Number Is Account still open
1234 Yes
12345 No
123456 Yes表B
Account Number Information Number Information data
1234 1 10
1234 2 20
12345 1 10
12345 2 20
123456 1 1000
123456 2 2000因此,一旦我的SQL查询被执行,它应该给出帐户1234的最终结果,因为它是唯一一个信息编号1= 10,信息编号2= 20的帐户,并且帐户仍然是打开的。
到目前为止,我唯一的想法是使用CASE或Union语法。我仍在学习SQL语言,因此任何帮助都将不胜感激。希望我已经解释好了。
发布于 2018-08-09 01:36:05
使用内部联接
SELECT ta.ACCOUNT_NUMBER FROM TABLE A as ta INNER JOIN TABLE B as tb ON ta.ACCOUNT_NUMBER = tb.ACCOUNT_NUMBER WHERE ta.IS_ACCOUNT_OPEN = 'yes' AND tb.INFORMATION_DATA IN ( 10, 20 )
发布于 2018-08-09 01:50:05
尝试此查询:
SELECT * FROM tableA A
WHERE EXISTS(SELECT 1 FROM tableB
WHERE information number 1 = 10
AND information number 2 = 20
AND AccountNumber = A.AccountNumber) 发布于 2018-08-09 02:01:39
使用case when和join
select a.* from TableA a inner join
(select
case when (number=1 and information_number=10)
or (number=2 and information_number=20) then account_number else
null as account_number
from tableB
) b on a.account_number =b.account_number https://stackoverflow.com/questions/51752416
复制相似问题