我有一个查询
select account, collateral,rest_flag_11 ,member_rest_flag11,member_rest_flag12
from FileDaily
left join member
on member.member_account=FileDaily.account
where member.member_rest_flag11= 80 or member.member_rest_flag12=80
and FileDaily.REST_FLAG_11=0 and FileDaily.COLLATERAL in (10,11,13,20)
获得抵押品= 30,40的记录 哪些不属于(10,11,13,20)中的抵押品, 为什么会这样?
我正在尝试查询提交表格抵押品中的帐号=(10 ,, 11,13,20) 和rest_flag_11 = 0并且在成员中member_account是member_rest_flag_11 = 80和member_rest_flag12 = 80。
我使用的是sql server 2012。
答案 0 :(得分:2)
问题可能是括号,你可以通过这样做来解决:
where (member.member_rest_flag11= 80 or member.member_rest_flag12=80) and
FileDaily.REST_FLAG_11=0 and FileDaily.COLLATERAL in (10,11,13,20)
您可以使用in
重写此内容:
where 80 in (member.member_rest_flag11, member.member_rest_flag12) and
FileDaily.REST_FLAG_11 = 0 and
FileDaily.COLLATERAL in (10, 11, 13, 20)
我还建议您对表别名使用表缩写。它们使查询更容易编写和阅读。
答案 1 :(得分:1)
你错过括号
select account, collateral,rest_flag_11 ,member_rest_flag11,member_rest_flag12
from FileDaily
left join member
on member.member_account=FileDaily.account
where (member.member_rest_flag11= 80 or member.member_rest_flag12=80)
and FileDaily.REST_FLAG_11=0 and FileDaily.COLLATERAL in (10,11,13,20)