2012-10-30 27 views
0

我的SQL語句返回以下加入多行給出一個不同的行

SQLID Col1 Col2 Col3 
14945 NULL NULL sdf 
14945 NULL xyz NULL 
14945 abc NULL NULL 

那裏,因爲我想它返回

SQLID Col1 Col2 Col3 
14945 abc xyz sdf 

請幫助。

該模式是這樣的,我有一個表,其中包含SQLID's。第二個表格包含SQLID的FK作爲第一個表和col1,col2和col3。目前,我只是做對SQLId

Select 
    t1.SQLID, t2.Col1, t2.col2, t2.col3 
from 
    Table1 t1 
join 
    table2 t2 on t1.SQLId = t2.SQLid 
+3

你的sql語句是什麼? – Marc

+3

如果您在給定列中有多個值用於SQLID,會發生什麼情況?我假設每列的'SELECT MAX'應該可以工作,但要確保。 – LittleBobbyTables

+1

您的示例數據太有限了。正如LittleBobbyTables所說,如果在這些列上存在相同ID的其他值,會發生什麼情況? – Lamak

回答

2

編輯聯接:如果Col1中,col2的,COL3是DATETIME數據類型(按下面的註釋) 可以使用;

SELECT SQLID, MAX(ISNULL(Col1,0)) AS Col1, 
     MAX(ISNULL(Col2,0)) AS Col2, MAX(ISNULL(Col3,0)) AS Col3 
FROM YourTable 
GROUP By SQLID 
+1

爲了保持一致性,可能需要將GROUP BY添加到第二個示例中。 – LittleBobbyTables

+0

Col1,col2和Col3實際上並不是整數。我用這只是爲了表示格式。他們是真的DateTime – sarsha

+0

@LittleBobbyTables謝謝你。剛剛添加。 – Kaf