私が実行しようとしているクエリに誰かが目を向けることができるかどうか疑問に思っていましたが、それを行う最善の方法についてはよく考えられません。
Contact テーブルの Email、Firstname、Surname と、Hotline テーブルの HotlineID と Last Action が必要です。Hotline テーブルに格納されている「フラグ」列をフィルタリングして、値が 1 の行のみを表示したいと考えています。次のクエリでこれを達成しました。
select Email, FirstName, Surname, HotlineID, LastAction
from Hotline
left join contact on contact.companyid=hotline.CompanyID
and contact.ContactID=hotline.ContactID
where
hotline.Flag = 1
今私ができないビット。アクション テーブルには、「ホットライン ID」、「コメント」、「日付」の 3 つの列があります。アクション テーブルのホットライン ID は、ホットライン テーブルのホットライン ID にリンクされています。ホットラインごとに複数のコメントを追加でき、投稿された日付が [日付] 列に記録されます。
最初のクエリから返された行のうち、最大日付 (最後に記録されたコメント) が現在の日付から 48 時間以内の行をさらに除外したいと考えています。ビジュアルスタジオで「addwithvalue」を使用して日付変数を設定していますが、テスト目的で「2014-12-04」を使用しています
私はこれを思いつきましたが、失敗しました。しかし、私はなぜわからないのですか?
Select Email, FirstName, Surname, hotline.HotlineID, LastAction
from Hotline
left join Contact on Contact.CompanyID=Hotline.CompanyID
and Contact.ContactID=Hotline.ContactID
inner join Actions on actions.HotlineID=hotline.HotlineID
where hotline.flag=1 and CONVERT(VARCHAR(25), Max(Date), 126) LIKE '2014-12-03%'
SQL Server を使用しています。