【发布时间】:2018-12-11 22:26:34
【问题描述】:
我是 SQL 新手,但我正在尝试创建一个报告,我可以在其中计算学生购买的食物,并按种族/民族和每年的食物选择进行分类。
例如:
2012 2013
Student Vegetarian Meat Unknown Vegetarian Meat Unknown
---------------------------------------------------------------------------
Black 5 Purchases 4 Purchases 3 Purchases 5 Purchases etc
White 4 Purchases 3 Purchases 3 Purchases etc etc
Asian 4 Purchases 1 Purchases 6 Purchases etc etc
虽然我能够在一个专栏中获得比赛,但我对不同食物类别的计数感到迷茫。我只知道 pur_type 被归类为“Veg”、“Me”和“Ukt”,分别代表 Vegetarian、Meat 和未知购买。
这是我尝试做的:
select
DATEPART(YYYY,pur_date) AS Year
,count (*) Citations
, race
, sex
, ethnicity
, GETDATE() as YTD
,COUNT(CASE WHEN pur_type = 'Veg' THEN 'Vegetarian'
WHEN pur_type = 'Me' THEN 'Meat'
WHEN pur_type = 'UKt' THEN 'Unknown'
ELSE ''
End as "Type"
, CASE
WHEN race='W' and sex='M' and ethnicity <> 'H' THEN 'Caucasian(Male)'
WHEN race='W' and sex='F' and ethnicity <> 'H' THEN 'Caucasian(Female)'
WHEN race='B' and sex='M' and ethnicity <> 'H' THEN 'African-American(Male)'
WHEN race='B' and sex='F' and ethnicity <> 'H' THEN 'African-American(Female)'
--WHEN race='A' and sex='M' and ethnicity <> 'H' THEN 'Pacific Islander(Male)'
--WHEN race='A' and sex='F' and ethnicity <> 'H' THEN 'Pacific Islander(Female)'
WHEN race='A' and sex='M' and ethnicity <> 'H' THEN 'Asian(Male)'
WHEN race='A' and sex='F' and ethnicity <> 'H' THEN 'Asian(Female)'
ELSE ''
END as 'Race'
from purchase
join purcharge
on purchase.purchaseid = purcharge.purchaseid
where pur_date between @startDate and dateadd(DD, +1, GETDATE())
and pur_type in ('Veg', 'Me', 'UKt')
GROUP BY DATEPART(YYYY,pur_date), race, sex, ethnicity , pur_type
ORDER BY 'Year','Race/Sex'
寻求指导。我想也许一个子查询会起作用,也许更多的案例陈述会起作用,但我无法计算每个种族的学生购买了多少食品类别。
另外,我正在尝试在 SSRS 报告中获取这些结果,因此它在 SQL 查询中可能看起来略有不同。
【问题讨论】:
-
您使用的是哪个 dbms?
-
微软 SQL 服务器
-
然后用
SQL Server标签标记你的问题。SQL只是多个 dbms 供应商使用的一种语言。 -
好的,我已经更正了。
-
@Eric Dude,这是一个 SQL 查询问题。标记它 Sql Server 只是告诉我们平台。
标签: sql sql-server reporting-services