我不知道我怎样才能取一个数据集,看起来像这样:合并重复的行成1行多列
表1:
RecordID Code
A 351
A 352
A 353
A 354
看起来像这样:
表2:
你已经可以假设我创建了第二个表格,其中包含我在下面创建的列标题
RecordID 351 352 353 354 355 356
A Y Y Y Y N N
非常感谢您的帮助。
我不知道我怎样才能取一个数据集,看起来像这样:合并重复的行成1行多列
表1:
RecordID Code
A 351
A 352
A 353
A 354
看起来像这样:
表2:
你已经可以假设我创建了第二个表格,其中包含我在下面创建的列标题
RecordID 351 352 353 354 355 356
A Y Y Y Y N N
非常感谢您的帮助。
你可以尝试这样的事:
select
RecordID,
iif(sum(iif([Code]=351,1,0))>0,'Y','N'),
iif(sum(iif([Code]=352,1,0))>0,'Y','N'),
iif(sum(iif([Code]=353,1,0))>0,'Y','N'),
iif(sum(iif([Code]=354,1,0))>0,'Y','N'),
iif(sum(iif([Code]=355,1,0))>0,'Y','N'),
iif(sum(iif([Code]=356,1,0))>0,'Y','N')
from table
group by RecordID
SELECT RecordID,
CASE WHEN SUM(CASE WHEN Code = 351 THEN 1 ELSE 0 END) = 1 THEN 'Y' ELSE 'N' AS [351],
CASE WHEN SUM(CASE WHEN Code = 352 THEN 1 ELSE 0 END) = 1 THEN 'Y' ELSE 'N' AS [352],
CASE WHEN SUM(CASE WHEN Code = 353 THEN 1 ELSE 0 END) = 1 THEN 'Y' ELSE 'N' AS [353],
CASE WHEN SUM(CASE WHEN Code = 354 THEN 1 ELSE 0 END) = 1 THEN 'Y' ELSE 'N' AS [354],
CASE WHEN SUM(CASE WHEN Code = 355 THEN 1 ELSE 0 END) = 1 THEN 'Y' ELSE 'N' AS [355],
CASE WHEN SUM(CASE WHEN Code = 356 THEN 1 ELSE 0 END) = 1 THEN 'Y' ELSE 'N' AS [356]
FROM yourTable
GROUP BY RecordID
谢谢你们!这是有道理的,应该工作,生病给它一个镜头。 – WillT2118
这RDBMS是这个呢?请添加一个标签来指定您是使用'mysql','postgresql','sql-server','oracle'还是'db2' - 或者其他的东西。 –
我正在使用SQLServer 2012 – WillT2118