Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.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
Sql 查询表,以便合并结果并按行返回_Sql_Sql Server_Sql Server 2005_Tsql - Fatal编程技术网

Sql 查询表,以便合并结果并按行返回

Sql 查询表,以便合并结果并按行返回,sql,sql-server,sql-server-2005,tsql,Sql,Sql Server,Sql Server 2005,Tsql,我需要为报表提取数据,以便列数据现在是行数据: empID planID coverage ----- ------ -------- 15 1 100 15 11 200 15 12 NULL 15 13 500 20 1 100 20 11 250 20 12 400 20 13 NULL 变成: emp Basic Sup

我需要为报表提取数据,以便列数据现在是行数据:

empID  planID  coverage
-----  ------  --------
15     1       100
15     11      200
15     12      NULL    
15     13      500
20     1       100
20     11      250
20     12      400
20     13      NULL
变成:

emp  Basic  Supplemental  Spouse  Dependent
---  -----  ------------  ------  ---------
15   100    200                   500
20   100    250           400  
我尝试过各种连接,best case scenerio得到了4倍的结果,因为它对前一个表中的每一行重复

SELECT DISTINCT 
CASE benefitSelected.planID WHEN 1 THEN benefitSelected.coverageLev END AS Basic, 
CASE benefitSelected_1.planID WHEN 11 THEN benefitSelected_1.coverageLev END AS Supplemental,
CASE benefitSelected_2.planID WHEN 12 THEN benefitSelected_2.coverageLev END AS Spouse,
CASE benefitSelected_3.planID WHEN 13 THEN benefitSelected_3.coverageLev END AS Dependent
FROM benefitSelected AS benefitSelected_3
  FULL OUTER JOIN benefitSelected AS benefitSelected_2 ON benefitSelected_3.empID = benefitSelected_2.empID
  FULL OUTER JOIN benefitSelected AS benefitSelected_1 ON benefitSelected_2.empID = benefitSelected_1.empID
  FULL OUTER JOIN benefitSelected
    RIGHT OUTER JOIN employee ON benefitSelected.empID = employee.empID
  ON benefitSelected_1.empID = benefitSelected.empID 
我做错了什么?我如何得到我想要的结果

谢谢你的关注

编辑: 下面是透视查询的结果

--  --------  ---------  ----  --------
1   10000.00  NULL       NULL  NULL 
1   NULL      0.00       NULL  NULL
1   NULL      NULL       0.00  NULL
1   NULL      NULL       NULL  0.00
8   10000.00  NULL       NULL  NULL
8   NULL      100000.00  NULL  NULL
8   NULL      NULL       0.00  NULL
8   NULL      NULL       NULL  10000.00
应该是:

--  --------  ---------  ----  --------
1   10000.00  0.00       0.00  0.00
8   10000.00  100000.00  0.00  10000.00
查询返回:

empID   Basic   Supplemental    Spouse  Dependent
15      100     200             NULL    500
20      100     250             400     NULL
查询返回:

empID   Basic   Supplemental    Spouse  Dependent
15      100     200             NULL    500
20      100     250             400     NULL

为什么不在SQLServer中使用透视表呢。检查示例非常好的建议,谢谢!我仍然有四行…这是最初的问题…是代码吗?从benefitSelected pivot中选择empID、levID、[1]、[11]、[12]、[13]([1]、[11]、[12]、[13])中的planID的计数(coverageLev)作为PlantType您可以通过结果吗getting@EmmanuelN无法获取格式以粘贴评论,因此已在原始问题中发布。结果与原始查询的结果相似。(标题如下:empID,1,11,12,13)谢谢。为什么不在SQLServer中使用透视表呢。检查示例非常好的建议,谢谢!我仍然有四行…这是最初的问题…是代码吗?从benefitSelected pivot中选择empID、levID、[1]、[11]、[12]、[13]([1]、[11]、[12]、[13])中的planID的计数(coverageLev)作为PlantType您可以通过结果吗getting@EmmanuelN无法获取格式以粘贴评论,因此已在原始问题中发布。结果与原始查询的结果相似。(标题如下:empID,1,11,12,13)谢谢。