私はデータを持つ2つのテーブルを持っています
tab1。sql join query not working
------------------------------------------------------------
compid | user_id | compdate | description |
------------------------------------------------------------
C0001 | U000001 | 2012-02-29 | desc1 |
C0002 | U000002 | 2012-02-29 | desc1 |
C0003 | U000001 | 2012-03-01 | desc1 |
C0004 | U000003 | 2012-03-01 | desc1 |
C0005 | U000001 | 2012-03-02 | desc1 |
C0006 | U000008 | 2012-03-02 | desc1 |
C0007 | U000212 | 2012-03-02 | desc1 |
C0008 | U010222 | 2012-03-02 | desc1 |
C0009 | U000091 | 2012-03-02 | desc1 |
C0010 | U010222 | 2012-03-02 | desc1 |
------------------------------------------------------------
tab2。
------------------------------------------------------------
compid | assigned_to| assignedon | status |
------------------------------------------------------------
C0001 | U000101 | 2012-02-29 | Closed |
C0002 | U000101 | 2012-02-29 | Open |
C0003 | U000102 | 2012-03-02 | Closed |
C0004 | U000102 | 2012-03-02 | Closed |
C0005 | U000101 | 2012-03-02 | Open |
C0006 | U000101 | 2012-03-02 | Closed |
C0008 | U000101 | 2012-03-02 | Closed |
------------------------------------------------------------
は、今、私が欲しいものである:そのStatus = 'Open'
ともレコードのエントリtab1
から
すべてのレコードがtab2
ではありません。
クエリは、compdate = '2012-03-02'
のレコードを取得する必要があります。私が試した何
は次のとおりです。
select
from tab1 a
left join dbo.tab2 b
on a.CompId = b.CompId
where b.StatusFlag = 'Open'
and a.CompDate = CONVERT(nvarchar(30),Dateadd(day,-1,getdate()),106)
期待される結果:
---------------------------------------------------------------------------------------
compid | user_id | compdate |description |assigned_to | assignedon |status|
---------------------------------------------------------------------------------------
C0005 | U000001 | 2012-03-02 | desc1 | U000101 | 2012-03-02 | open |
C0009 | U000001 | 2012-03-02 | desc1 | Null | NULL | null |
C0010 | U000001 | 2012-03-02 | desc1 | null | null | null |
----------------------------------------------------------------------------------------
ステータスが「オープン」のレコードが必要な場合は、なぜ「!=」を使用していますか? – bernie
だから何が問題なの?エラーが発生しているか、予期した結果だけではありませんか? –
現在の日付より2日前の日付の行を選択しているようです。 compdateが '2012-03-02'の行が必要な場合は、これを実行するために日曜日まで待つ必要があります。 –