【发布时间】:2016-12-09 01:15:01
【问题描述】:
我有两个表格,数据如下:
1) 转表
TICKET STATUS
56 0
56 0
2) Resa 表
R_TICKET R_STATUS
56 0
如果两个表中的票数都匹配,我想要这样的结果,然后打印 0 否则 1。
我试过下面的查询,但它不起作用
select case when count(a.ticket) = count(b.r_ticket)
then 0
else 1
end as result
from trans a, resa b
它显示0,但它应该是1,因为票数56 在trans 中是2,在resa 中是1。
有问题的一些变化: 我想要这样的结果:
TICKET Count(Ticket) r_Ticket Count(r_Ticket) result
56 2 56 1 1
58 1 58 1 0
【问题讨论】:
-
问题不清楚。什么是“票数”?在您的第一个表中,您只有一张票,56。您的意思是“行数”而不是“票数”?如果表格中有多个票号怎么办 - 您是否计算表格中的所有行?所有按票号分组的行?表中所有不同的票?结果是表格之间的比较,还是票号的比较? (56号票的计数相同,58号票不同,等等?)
-
票号可以不同,我希望票数应该匹配,例如在第一个表中票号 56 重复两次,在第二个表中重复一次,因此不匹配应该打印 1。但是如果另一张票假设 58 在第一个表中重复 2 次,并且在第二个表中重复 2 次,则它匹配的应该打印 0。
-
那么@Tim Biegeleisen 的解决方案正是您想要的。