【发布时间】:2013-11-18 16:31:00
【问题描述】:
感谢您的关注。我是 tsql 新手,不知道如何继续。我有一张桌子,里面有 10 家不同的公司和 20 个部门(所有公司的部门都相同)。 我正在尝试计算每个部门的费用百分比,并希望在结果中显示一个额外的“百分比”列。
请注意,对于每个公司,第一个部门是总费用,这只是公司所有部门的总费用,不需要计算,应该从下一行计算。
是否可以通过使用 while 循环或任何其他方式来执行此操作,而不是为每个循环手动执行此操作?
ID |Company_name| Department |Expenses | Percentage
1 |Company1 |TotalComp1Expenses |50000 | -
2 |Company1 |Department1 |4000 | ?
3 |Company1 |Department2 |8000 | ?
4 |Company1 |Department3 |8000 | ?
5 |Company1 |Department4 |7000 | ?
6 |Company1 |Department5 |10000 | ?
...
11 |Company2 |TotalComp2Expenses |100000 | -
12 |Company2 |Department1 |6000 | ?
13 |Company2 |Department2 |5000 | ?
15 |Company2 |Department3 |8000 | ?
15 |Company2 |Department4 |7000 | ?
16 |Company2 |Department5 |10000 | ?
...
21 |Company3 |TotalComp3Expenses |70000 | -
22 |Company3 |Department1 |2000 | ?
23 |Company3 |Department2 |7000 | ?
24 |Company3 |Department3 |9000 | ?
25 |Company3 |Department4 |8000 | ?
26 |Company3 |Department5 |10000 | ?
...
【问题讨论】:
-
在 SQL 术语中“使用 while 循环”与“为每个循环手动执行”是一回事。 不为每个手动执行的方法是在单个查询中执行所有操作。
标签: sql sql-server sql-server-2008 tsql plsql