我在MySQL中有以下架构(只读权限数据库)
http://sqlfiddle.com/#!9/1eafc/1
正如您所看到的,只有5个国家/地区代码:
GB, USA, GR, ES, DE
有些月份,有些记录可能不包含其中一个国家/地区,因为当月没有为该国家/地区创建记录。
正如您在sqlfiddle中所看到的,GB
记录仅在9月创建。
如果该月份没有任何国家/地区的记录,而不是未被退回,则显示0或NULL或其他内容是否有任何方法?
到目前为止,我已尝试过ISNULL
,IFNULL
和COALESCE
的不同变体,但这些变体都没有效果。
我想返回类似以下内容的内容
UK 0
USA 13
GR 5
ES 12
DE 1
有什么想法吗?
答案 0 :(得分:2)
好的,所以代替功能性的SQLFiddle,我会做一些假设。国家/地区代码与分组数据位于同一个表中。
如果是这种情况,为什么不使用:
select DT1.CountryCode, count(DT2.ValueForCounting) as ReturnedCount
from (
select distinct CountryCode
from DataTable ) DT1
left join DataTable DT2
on DT1.CountryCode = DT2.CountryCode
and DT2.QueryConditions = 'Stuff' -- Use the join condition instead of a where clause for anything to do with DT2
答案 1 :(得分:0)
你的小提琴链接没有加载,
但我想我有两个不同的想法,