下午好,
我一直在努力创建一个小表,总计与行业相关的一些数字。
我需要做的是将多行合并为一行。数值代表每个行业内的项目数量,两个表通过子选项中的Expense Cat ID
连接。
子查询示例:
,(SELECT COUNT (*) FROM [projects]
left join [territory]
on projects.territoryid = territory.territoryid
WHERE expense_category.expensecategoryid = projects.expense_category
AND projects.status = 'Live'
) AS [Live Projects]
所以我想要实现的是行的组合,其中费用类别的名称相同,然后组合行。
简而言之:
CREATE view [dbo].[Industry_Projects_figures] as
WITH [top25_industries] as (
SELECT expense_cat
,(Select COUNT(projectid) from project_table
where project = live) as [Live projects]
,(Select COUNT(projectid) from project_table
where project = live) as [Cancelled Projects]
,(Select COUNT(projectid) from project_table
where project = live) as [Completed]
From industry_table
GROUP BY expense_cat
)
select TOP 25 [top25_industries].*,
[Live Projects] + [Cancelled] + [Completed] as [Grand Total]
FROM [top25_industries]
ORDER BY [Grand Total] DESC
结束制作:
Industry:
Utilities & Energy 19 143 117 451
Utilities & Energy 172 69 98 339
Utilities & Energy 43 21 23 87
每一行代表父母和两个子子行业!所以我需要把它们结合起来:(
答案 0 :(得分:0)
选择总和(已取消)超过(由expense_cat分区) + sum(已完成)(由expense_cat分区) 来自top25_industries
如果expense_Cat列是'Utilities&能源专栏,它应该总结每个行业的已取消和已完成的总数。
答案 1 :(得分:0)
我今天想出来了!
我做错了是我的第二个选择,我本应该通过expense_cat进行GROUPing,你可以从上面的代码中看到我是从临时表中选择*,我只是选择了Expense Cat并按其分组。现在桌子看起来好多了。
此外,我还有猫的名字相似但不一样,E.G其他 - 培根,其他 - 培根兹,其他 - MOAR培根。
我需要做的就是在我的第一个选择中设置一个CASE WHEN子句来过滤任何名字为LIKE的expense_cats'其他%'那么'其他'使我的第二个选择能够将它们组合在一起! :)