C# 仅显示具有相同名称ID的所有AAs的总和。我会将问题更改为直观地显示我的意思。@Mana这很简单,我们只是将查询更改为使用Sum。我已经更新了我的答案。谢谢,现在就测试它。大家好,我已经测试了你们的解决方案,它确实有效,但有一个小问题。问题是,有些[数据]
C# 仅显示具有相同名称ID的所有AAs的总和。我会将问题更改为直观地显示我的意思。@Mana这很简单,我们只是将查询更改为使用Sum。我已经更新了我的答案。谢谢,现在就测试它。大家好,我已经测试了你们的解决方案,它确实有效,但有一个小问题。问题是,有些[数据],c#,sql,ms-access,pivot,C#,Sql,Ms Access,Pivot,仅显示具有相同名称ID的所有AAs的总和。我会将问题更改为直观地显示我的意思。@Mana这很简单,我们只是将查询更改为使用Sum。我已经更新了我的答案。谢谢,现在就测试它。大家好,我已经测试了你们的解决方案,它确实有效,但有一个小问题。问题是,有些[数据]包含Datetime类型,不要问我为什么。我确信只有[Name]BB包含它们,而且不管[NameID]是什么,有些都是空的。因此,我想知道是否有可能通过某种方式进行过滤,以便只对[Data]下包含Datetime的[Name]BB进行汇总法力7
仅显示具有相同名称ID的所有AAs的总和。我会将问题更改为直观地显示我的意思。@Mana这很简单,我们只是将查询更改为使用Sum。我已经更新了我的答案。谢谢,现在就测试它。大家好,我已经测试了你们的解决方案,它确实有效,但有一个小问题。问题是,有些[数据]包含Datetime类型,不要问我为什么。我确信只有[Name]BB包含它们,而且不管[NameID]是什么,有些都是空的。因此,我想知道是否有可能通过某种方式进行过滤,以便只对[Data]下包含Datetime的[Name]BB进行汇总法力7分钟前
[Table1] => [Table1_converted]
[Index] [Name] [Data] [NameID] [NameID] [AA] [BB] [CC] [DD]
1 AA 14 1 1 14 date1 64 61
2 BB(date) 42 1 2 15+19 date2 67+21 63+12
3 CC 64 1 3 9 10
4 DD 61 1 4 date4 1 87
5 AA 15 2
6 BB(date) 35 2
7 CC 67 2
8 DD 63 2
9 AA 9 3
10 CC 10 3
11 AA 19 2
12 BB(date) 20 2
13 CC 21 2
14 DD 12 2
15 BB(date) 83 4
16 CC 1 4
17 DD 87 4
SELECT NameID , [AA] as AA,[BB] as BB,[CC] as CC,[DD] as DD
FROM
(
SELECT Name,Data,NameID FROM Table1
)PivotData
PIVOT
(
max(Data) for Name in ([AA],[BB],[CC],[DD])
) AS Pivoting
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Name)
from [Table1]
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT countryid,' + @cols + '
from
(
select NameID, Name
from Table1 cc
) T
pivot
(
max (Name)
for languagename in (' + @cols + ')
) p '
execute sp_executesql @query;
DECLARE @Table1 TABLE ([Index] INT,[Name] CHAR(2),[Data] INT,[NameID] INT)
INSERT INTO @Table1
VALUES
(1,'AA',14,1),
(2,'BB',42,1),
(3,'CC',64,1),
(4,'DD',61,1),
(5,'AA',15,2),
(6,'BB',35,2),
(7,'CC',67,2),
(8,'DD',63,2),
(9,'AA',9,3),
(10,'CC',10,3),
(11,'BB',83,4),
(12,'CC',1,4),
(13,'DD',87,4)
SELECT [NameID] , ISNULL([AA], '') AS [AA], ISNULL([BB], '') AS [BB]
, ISNULL([CC], '') AS [CC], ISNULL([DD], '') AS [DD]
FROM
(
SELECT NAME, DATA, NAMEID
FROM @Table1
)q
PIVOT
(
SUM(DATA)
FOR NAME
IN ([AA], [BB], [CC], [DD])
)P
NameID AA BB CC DD
1 14 42 64 61
2 15 35 67 63
3 9 10
4 83 1 87