Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带where子句的透视sql查询_Sql_Sql Server_Pivot_Where Clause - Fatal编程技术网

带where子句的透视sql查询

带where子句的透视sql查询,sql,sql-server,pivot,where-clause,Sql,Sql Server,Pivot,Where Clause,我有以下脚本来生成一个pivot输出,但是我有两个元素: 1-让输出显示输出,所有用户标识位于输出的左侧 2-在脚本中放入where子句,以限制输出。尝试了100种选择。任何帮助都将不胜感激 SELECT 'invoices.USERID' AS totalvalue, [1], [2] FROM (SELECT invoices.USERID, [total],PAYERCODE FROM invoices where invoices.userid = 41 ) AS Source

我有以下脚本来生成一个pivot输出,但是我有两个元素:

1-让输出显示输出,所有用户标识位于输出的左侧

2-在脚本中放入where子句,以限制输出。尝试了100种选择。任何帮助都将不胜感激

SELECT 'invoices.USERID' AS totalvalue,
[1], [2]


FROM

(SELECT invoices.USERID, [total],PAYERCODE
FROM invoices
where invoices.userid = 41
  ) AS SourceTable

PIVOT
(
SUM([total])
FOR PAYERCODE IN ([1], [2])
) AS PivotTable;

所以我希望它看起来像是


在把我整个周末都搞砸之前,我非常感谢您的帮助。

Y轴是一个字符串
'invoices.USERID'

并删除invoices.userid=41处的

SELECT USERID AS totalvalue,[1],[2]
FROM 
(SELECT invoices.USERID, [total],PAYERCODE
 FROM invoices
 --where invoices.userid = 41
) AS SourceTable
PIVOT
(
SUM([total])
FOR PAYERCODE IN ([1], [2])
) AS PivotTable;

提供示例数据。当您筛选数据以仅包含userId
41
时,为什么会期望结果中包含其他userId。删除final select中发票.USERID
周围的双引号。这将使编译器认为是字符串,而不是标识符。谢谢,这是一种享受。对不起,我想在发帖前把where去掉。我知道这一点。“”是问题所在。Cheers@HAS很高兴它有帮助