2

AとBという2つのテーブルがあります。

表:A

ID_Sender |  Date     
________________________
   1      | 11-13-2013
   1      | 11-12-2013

   2      | 11-12-2013
   2      | 11-11-2013

   3      | 11-13-2013
   4      | 11-11-2013

表:B

    ID    |  Tags
_______________________
1         | Company A
2         | Company A
3         | Company C
4         | Company D

結果表:

Tags        |   Date
____________________________
Company A   | 11-13-2013
Company C   | 11-13-2013
Company D   | 11-11-2013

私はすでにこのGROUP BY を MAX(DATE)で試しましたが、うまくいきませんでした。いくつかの内部結合とサブクエリを実行しましたが、出力を生成できませんでした。

これまでの私のコードと、出力の画像が添付されています。

SELECT E.Tags, D.[Date] FROM 
        (SELECT A.ID_Sender AS Sendah, MAX(A.[Date]) AS Datee
        FROM tblA A
        LEFT JOIN tblB B ON A.ID_Sender = B.ID
        GROUP BY A.ID_Sender) C
    INNER JOIN tblA D ON D.ID_Sender = C.Sendah AND D.[Date] = C.Datee
    INNER JOIN tblB E ON E.ID = D.ID_Sender

助言がありますか?私はすでに私の髪を引っ張っています!(たぶん、皆さんは役立つSQLの概念をいくつか教えてくれるかもしれませんが、答えはそれほど必要ではありません。私は本当に自分で解決したかったのです:))

ありがとう!

4

3 に答える 3

5
SELECT Tags, MAX(Date) AS [Date]
FROM dbo.B INNER JOIN dbo.A
  ON B.ID = A.ID_Sender
GROUP BY B.Tags

Demo

結果

Company A   November, 13 2013 00:00:00+0000
Company C   November, 13 2013 00:00:00+0000
Company D   November, 11 2013 00:00:00+0000
于 2013-11-13T08:48:49.910 に答える