我一直在試圖低估寫一個MS SQL 2005查詢其幾乎做以下的最佳方式......SQL - 獨特的一欄,選擇多個其他?
select distinct col1, col2, col3
from table1
基本上,我想執行在col1不同的,但我不想對col2的Dististinc/3,我只是想要價值。
我明白它不可能這樣寫查詢,因爲我認爲我讀的Distinct應用於行而不是col?
任何人都可以請指點我正確的方向嗎?我曾嘗試右joing值回但我必須指定額外這種沒有工作在不同的選擇加入的cols這反過來執行這些鮮明的,即
select distinct t1.col1, t2.col2, t3.col3
from table1 t1
right join (select col1, col2, col3 from table1) t2
on t1.col1 = t2.col1
編輯,以更好地解釋..
select distinct t1.Hostname, t2.IP, t2.ActionDateTime, t2.Action
from tblUserActions t1
right join (select Hostname, IP, ActionDateTime from tblUserActions) t2
on t1.Hostname = t2.Hostname
基本上,這表是成千上萬的用戶操作和IM試圖名單上的主機名不同的列表,所以我應該只接收比如10行的那許多不同的主機名有怎麼樣了。然後根據這些主機名我想也加入了最新的記錄數據返回的行,所以我想回:
Hostname, IP, ActionDateTime, Action
1 Host1, 165.123.123.1, 2012-06-14 02:07:08, Logon
2 Host2, 165.123.123.2, 2012-06-14 03:07:08, Logoff
3 Host3, 165.123.123.3, 2012-06-14 04:07:08, Logon
4 Host4, 165.123.123.4, 2012-06-14 05:07:08, Logoff
etc...
任何幫助/指針將是巨大的!乾杯。
如果我的理解是正確的,你只需要選擇從COL1的不同的值,但是你想要的一切,從COL2和COL3?當col1具有相同的值時,您想在其位置顯示什麼?你必須有一些值(即使它是空的)在col1上顯示在結果集上。 – Lex
你能告訴我們一些樣品數據嗎?我不確定我完全理解你在 –
之後,這是不可能的。在紙上試試 - 爲col1寫一個相同值的列,在它旁邊寫一個col2值不同的列。你會選擇哪種col2值?如果你想要所有這些,你不能只採用col1中的一個。你需要做什麼? –