我有两个表格,字段如下
______________
|Game_Details:|
|_____________|______
|Game_Id | Game_Name|
__________
|WC_Info:|
|________|_____________________________
|S/N | Game_Id | Country_Name| WC_Won|
我正在尝试获取至少在4个国家/地区(印度,英国,法国,意大利)播放的game_name列表,并且所有这些字段的WC_Won字段为0。
以下查询提取错误的详细信息。有人请建议获取它的方法。
Select G.Game_Name
From Game_Details G
Inner Join WC_Info W
On G.Game_Id=W.Game_Id
Where W.WC_Won=0
Group By Game_Name
Having Count(Country_Name in (India, England,France, Italy))>3
答案 0 :(得分:1)
您可以使用此选择语句:
{{1}}
答案 1 :(得分:0)
你很近:
Select G.Game_Name
From Game_Details G Inner Join
WC_Info W
On G.Game_Id = W.Game_Id
Where W.WC_Won = 0
Group By Game_Name
Having Count(distinct case when Country_Name in ('India', 'England', 'France', 'Italy')
then country_name
end) = 4;
我发现使用不平等会产生误导。您想要所有四个国家/地区,因此= 4
比> 3
或>= 4
更有意义。
或者,您可以在聚合之前过滤国家:
Select G.Game_Name
From Game_Details G Inner Join
WC_Info W
On G.Game_Id = W.Game_Id
Where W.WC_Won = 0 and
Country_Name in ('India', 'England', 'France', 'Italy')
Group By Game_Name
Having Count(distinct country_name) = 4;