【发布时间】:2021-04-09 08:16:54
【问题描述】:
我必须将具有特定值的表中的一列分成两列,但我不明白为什么我的代码给了我错误的数字并且它不能正常工作。
我的代码是这样的:
SELECT Pname
, (SELECT sum(Pcount) FROM Personal_tbl WHERE Pregion = 'Germany') AS German
, (SELECT sum(Pcount) FROM Personal_tbl WHERE Pregion = 'UK') AS UK
, COUNT(FID) AS Total
FROM Personal_tbl
GROUP BY Pname
输入:
| Pname | Pregion | Pcount |
|---|---|---|
| Ava | German | 10 |
| Ava | UK | 5 |
输出必须是这样的:
| Pname | German | UK | Total |
|---|---|---|---|
| Ava | 10 | 5 | 15 |
【问题讨论】:
-
COUNT(FID)返回该列中非空值的计数。这真的是你想要的吗? -
如果您将示例数据添加为 DDL/DML,那么人们可以更轻松地提供帮助。
-
可以在sql server中使用pivot pivot
-
'FID' 不存在?和
GermanyGerman。但是您实际上并没有说明您的代码返回的结果有什么问题? -
顺便说一句,我注意到您没有接受任何问题的单一答案 - 接受答案或解释为什么答案不能解决您的问题是 预期的在这个网站上进行礼仪。请重新审视您的所有问题并接受一些答案,然后您将有足够的代表来为有用的答案投票。
标签: sql sql-server tsql select