2017-12-01 22 views
0

に複数の行を結合し;は、私はこのようになり、データを持っている1

Id Name  Number Birthdate 
0 Dajit Singh NULL 6/9/2007 
5 Dajit Singh 12345 NULL 
11 Dajit Singh NULL NULL 

私はprogammatically利用可能なすべてのデータを1行にこれらの行を結合したい:

0 Dajit Singh 12345 6/9/2007 

は、ここで私はこれまで持っているものだが、それはそれをしない:

Select Id, 
     Max(Name) As Name, 
     Max(Number) As Number, 
     Max(Birthdate) As Birthdate 
From tblPerson 
Group By Id, Name, Number, Birthdate 
Order By Name 

どのようにこれを達成することができますか?

+0

は 'だけでなく' Id'の 'MIN(ID)を使用してください。 – DavidG

+1

あなたはあなたの説明に入れて結果がちょうどIDとしてMIN(ID)にIDを変更し、それが一貫しているだけので、名前によってグループ全体またはグループを取り出したい場合。 –

答えて

1

スクリプトを確認してください:

DECLARE @table TABLE 
(
    Id   INT NOT NULL, 
    Name  VARCHAR(50) NOT NULL, 
    Number  INT NULL, 
    Birthdate DATETIME NULL 
) 


INSERT INTO @table(Id, Name, Number, Birthdate) VALUES 
(0, 'Dajit Singh', NULL, '20070906'), 
(5, 'Dajit Singh', 12345, NULL), 
(11, 'Dajit Singh', NULL, NULL), 
(100, 'Alex', NULL, '20080906'), 
(500, 'Alex', 12345, NULL), 
(1100, 'Alex', NULL, NULL) 


SELECT 
    MIN(Id) As Id, 
    Name As Name, 
    MAX(Number) As Number, 
    MAX(Birthdate) As Birthdate 
FROM @table 
GROUP BY Name 
ORDER BY Name 
関連する問題