私はMSSQL2005クエリを作成するための最良の方法を過小評価しようとしてきましたが、これはほとんど次のことを行います...
select distinct col1, col2, col3
from table1
基本的に、col1でDistinctを実行したいのですが、Col2 / 3でDististincは必要ありません。ただ、そこに値が必要です。
Distinctが行に適用され、列には適用されないことを読んだので、この方法でクエリを記述できないことを理解していますか?
誰かが私を正しい方向に向けてくれませんか?値を正しく結合しようとしましたが、個別の選択で追加の結合された列を指定する必要があったため、これは機能しませんでした。
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
基本的に、このテーブルは何千ものユーザーアクションのリストであり、ホスト名に個別にリストしようとしているので、ホスト名がいくつあるかというと、たとえば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...
どんなヘルプ/ポインタも素晴らしいでしょう!乾杯。