0

マスタールックアップテーブルに対して一致する行と一致しない行を表示するクエリを表示する必要があります

@PostCodesテーブルには、2番目のクエリが照合されるマスターテーブルの郵便番号が含まれています

DECLARE @PostCodes TABLE 
(
    RowID int not null primary key identity(1,1), 
    Postcodes varchar(100) 
) 


SELECT 
   C.CampaignId, C.Name, C.Description,C.EndedOn, C.Active, C.Manager, 
   P.PostcodeArea, P.PostcodeDistrict
FROM 
   Campaign C, CampaignPostcode P, @PostCodes pc
WHERE 
   P.CampaignId = C.CampaignId AND
   P.PostcodeDistrict = pc.Postcodes AND
   C.EndedOn IS NULL 

2番目のクエリは、郵便番号に対して一致するレコードのみを返します。一致しないレコードを含めるようにすべてを試しましたが、運がありませんでした。

何か助けはありますか?


編集(表)

 PostCodes  (table1)             Campaign (table2)                      

Id      Postcodes          CampaignId    Name      Desc           
1        AA                  1            camp1    Desc1
2        AB                  2            camp2    Desc2 
3        AC                  3            camp3    Desc3
4        AD                  4            camp4    Desc4

CampaignPostcode (table3)

CampaignPostcodeId  CampaignId  PostcodeArea
 1                      1          AA
 2                      2          AB
 3                      2          AB
 4                      3          AC

必要な出力

   Id  CampaignName   Desc   PostcodeIn PostcodeOut
    1    Camp1        Desc1     AA          NULL
    2    Camp2        Desc2     AB          NULL
    3    Camp2        Desc2     AB          NULL
    4    Camp3        Desc3     AC          NULL
    5    Camp4        Desc4     NULL        AD
4

2 に答える 2

1

これはどうですか:

SELECT 
   C.CampaignId, C.Name, C.Description,C.EndedOn, C.Active, C.Manager, 
   P.PostcodeArea, P.PostcodeDistrict
FROM 
   Campaign C
INNER JOIN
   CampaignPostcode P ON P.CampaignId = C.CampaignId
LEFT OUTER JOIN
   @PostCodes pc ON P.PostcodeDistrict = pc.Postcodes 
WHERE 
   C.EndedOn IS NULL 
于 2013-02-15T16:29:09.423 に答える
0

代わりにこれを試してください:

SELECT   
  p.*
FROM @PostCodes AS PC
LEFT JOIN
(
  SELECT *
  FROM Campaign C
  INNER JOIN CampaignPostcode P ON  P.CampaignId = C.CampaignId
) AS p ON P.PostcodeDistrict = pc.Postcodes
WHERE P.EndedOn IS NULL 
于 2013-02-15T17:06:48.423 に答える