【发布时间】:2020-02-24 08:52:14
【问题描述】:
我针对以下问题开发了一个查询。但是,它没有显示出预期的结果。有人有想法吗?
表 1
ID FRUIT
1 APPLE
1 APPLE
1 MANGO
表 2
country id
USA 1
UK 2
如果水果名称的计数大于 1,我需要“是”表示节日,“否”表示零计数。
select country ,id
CASE
when table1.count > 1 and table1.fruit='APPLE'
then 'Y'
else 'N'
END as apple_festival,
CASE
when table1.count > 1 and table1.fruit='MANGO'
then 'Y'
else 'N'
END as mango_festival,
CASE
when table1.count > 1 and table1.fruit='BANANA'
then 'Y'
else 'N'
END as Banana festival, JOIN (SELECT id,fruit,count from table1 group by id,fruit) table1 on table1.id=table2.id
我想要这样的结果:
COUNTRY id apple_festival mango_festival Banana_festival
USA 1 Y Y N
但是,我得到了这个:
COUNTRY id apple_festival mango_festival Banana_festival
USA 1 Y N N
USA 1 N Y N
人们可以用这个小提琴来帮助我..
【问题讨论】:
-
您使用的是哪种 DBMS 产品? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tag。 Why should I tag my DBMS
-
您的结果表明条件是
> 0,而不是> 1——这是非常不同的。