Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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 你们这些家伙,让我看看我是否能更好地描述它! ID Role redn Value 1 Role1 redn1 V1 1 Role1 redn1 V2 1 Role1 redn2 V3 1 Role2 _Sql_Sql Server - Fatal编程技术网

Sql 你们这些家伙,让我看看我是否能更好地描述它! ID Role redn Value 1 Role1 redn1 V1 1 Role1 redn1 V2 1 Role1 redn2 V3 1 Role2

Sql 你们这些家伙,让我看看我是否能更好地描述它! ID Role redn Value 1 Role1 redn1 V1 1 Role1 redn1 V2 1 Role1 redn2 V3 1 Role2 ,sql,sql-server,Sql,Sql Server,你们这些家伙,让我看看我是否能更好地描述它! ID Role redn Value 1 Role1 redn1 V1 1 Role1 redn1 V2 1 Role1 redn2 V3 1 Role2 redn1 V1 1 Role2 redn2 V2 ID Role redn1 redn2 1 Role1 V1 V3 1 Role1 V2 V3 1 Role2 V1

你们这些家伙,让我看看我是否能更好地描述它!
ID  Role    redn    Value
1   Role1   redn1   V1
1   Role1   redn1   V2
1   Role1   redn2   V3
1   Role2   redn1   V1
1   Role2   redn2   V2
ID  Role    redn1   redn2
1   Role1   V1     V3
1   Role1   V2     V3
1   Role2   V1     V2
SELECT ID, Role, [redn1], [redn2], [redn3], ..., [redn8]
FROM
(SELECT ID,  Role,    redn,    Value
    FROM [Input]) AS SourceTable
PIVOT
(
MAX([Output])
FOR redn IN ([redn1], [redn2], [redn3], ..., [redn8])
) AS PivotTable;
select ID,  Role, s1.value as redn1,    s2.value as redn2
from source s1 
inner join source s2
on s1.ID=s2.ID and s1.Role=s2.Role and s1.redn != s2.redn
SELECT Id, Role,
       SUM(IF(redn = 'redn1', Value, 0)) AS redn1,
       SUM(IF(redn = 'redn2', Value, 0)) AS redn2
FROM dataset
GROUP BY Id, Role
/* Source Data */ 
--DROP TABLE #Temp
SELECT 1 AS ID, 'Role1' AS Role,'redn1' redn, 'V1' [Value]
INTO #Temp
UNION ALL 
SELECT 1 AS ID, 'Role1' AS Role,'redn1' redn, 'V2' [Value]
UNION ALL 
SELECT 1 AS ID, 'Role1' AS Role,'redn2' redn, 'V3' [Value]
UNION ALL 
SELECT 1 AS ID, 'Role2' AS Role,'redn1' redn, 'V1' [Value]
UNION ALL 
SELECT 1 AS ID, 'Role2' AS Role,'redn2' redn, 'V2' [Value]

/*Query*/
WITH Source_Dataset
AS
(
    Select   ID
            ,Role
            ,RednNo = CASE WHEN redn = 'redn1' then 1 
                           WHEN redn =  'redn2'  then 2 
                      END
            ,[Value]
    FROM #Temp
)
select DISTINCT S1.ID
      ,S1.Role
      ,s1.value  redn1
      ,s2.value  redn2
from Source_Dataset s1 
inner join Source_Dataset s2
on s1.ID=s2.ID and s1.Role=s2.Role and s1.RednNo < s2.RednNo 
ORDER by 1,2