我在查询中发出并在我比较某些值时没有返回正确的数据
select a.item, iif(a.value>b.value,0,1) as compare
from table a left join table b on a.id=b.id
返回
item1, 0
item2, 0
item3, 0
我的数据是
table a
item1 10
item2 20
item3 30
table b
item1 5
item2 25
item3 30
预期的正确结果是
item1, 0
item2, 1
item3, 0
当我使用ISNULL()函数返回
item1, 1
item2, 1
item3, 1
发生了同样的问题,例如......那么0结束
我真的不知道查询发生了什么,我发现问题在哪里找不到任何帮助。非常感谢。
答案 0 :(得分:2)
看起来你正在加入同一张桌子,即:
table a
这是指一个名为'table'的表,别名为'a'。
如果您要将同一张桌子加入到自身中,这将考虑到您返回1的所有内容的结果,因为假设一对一匹配,a.value
和b.value
将始终相等
您是否在寻找更多类似的内容:
[table a] a left join [table b] b on a.id = b.id
答案 1 :(得分:0)
应该是内连接并使用[用于间隔表名称或列]
SELECT
a.item,
iif(a.value > b.value, 0, 1) AS compare
FROM [table a] a
INNER JOIN [table b] b
ON a.id = b.id