2017-08-28 13 views
0

テーブルrm001からこのクエリ&に顧客名 - (CUSTNAM)を内部結合する方法が私のSSRSレポートに追加されているのですか?これを追加する助けを使うことができました。ありがとう複数のテーブルで追加の内部結合を追加するSQL

私は "から" "と"としてsaleslineitemsの後に追加しようとしましたが、それはSSRSレポートを壊しました。

use n 
 

 
select distinct a.[SOP Number] 
 
--, [Item Number] 
 
, a.[Customer Number], a.[Created Date from Sales Transaction], a.[Primary Shipto Address Code from Sales Line Item] 
 
, a.[City from Sales Transaction], 
 
,c.city 
 
,case 
 
    when b.CITY <> c.city then 'Cities Do Not Match' 
 
    when c.city = '' then 'Cities do not Match' 
 
    when isnull(c.city,'1') = '1' then 'Cities Do Not Match' 
 
    else '' 
 
end as [validate cities] 
 
,b.USERDEF1 as GP_F 
 
, c.f_number as EZ_F 
 
,case 
 
    when b.USERDEF1 <> c.f_number then 'Fs do not Match' 
 
    when b.USERDEF1 = '' then 'No F in GP' 
 
     
 
    else '' 
 
end as [validate Fs] 
 
, c.f_expiration 
 
,case 
 
    when c.f_expiration <= getdate() then ' F EXPIRED '  
 
    when c.f_expiration <= DATEADD(d,15,getDate()) then 'F expiring soon' 
 
    --when c.f_expiration >= dateAdd(d,61,getdate()) then 'valid F Expiration' 
 
    else '' 
 
end as [valid f date] 
 

 
--,(select top(1) c.f_number from NBS_BoundBook..contacts where c.f_number = b.userdef1 order by c.uid desc) 
 
--, a.* 
 
from SalesLineItems a 
 
inner join rm00102 b on a.[customer number] = b.CUSTNMBR and a.[Primary Shipto Address Code from Sales Line Item] = b.ADRSCODE 
 

 
left join NBS_BoundBook..contacts c on Replace(Replace(ltrim(rtrim(b.USERDEF1)),CHAR(10),''),CHAR(13),'') = 
 
(select top(1) Replace(Replace(ltrim(rtrim(c.f_number)),CHAR(10),''),CHAR(13),'') from NBS_BoundBook..contacts 
 
    where Replace(Replace(ltrim(rtrim(c.f_number)),CHAR(10),''),CHAR(13),'') = Replace(Replace(ltrim(rtrim(b.USERDEF1)),CHAR(10),''),CHAR(13),'') 
 
    and c.city= b.CITY order by c.uid desc) 
 
where [sop type] = 'Order' 
 
and [Created Date from Sales Transaction] >= dateAdd(d,-3, getDate()) 
 
and [Item Tracking Option] in ('Serial Numbers') 
 
order by a.[Customer Number]

+0

ただ、いくつかのコメント:テーブルで使用されるエイリアスの列。 where句フィルタ列を完全修飾します。いずれかのフィルタ値が 'c'から供給されている場合、左結合は内部結合のように動作し、NULLはそのフィルタ値と等しくないため、左結合から生成されたNULL値は除外されます。あなたも何をやろうとしたのかを示すべきで、どこが間違っていたのかを明らかにすることができます。 – xQbert

答えて

4

この動作するはずのような何か:

..... 
FROM SalesLineItems a 
    INNER JOIN rm00102 b 
     ON a.[customer number] = b.CUSTNMBR 
      AND a.[Primary Shipto Address Code from Sales Line Item] = b.ADRSCODE 
    INNER JOIN rm001 cust 
    ON cust.[customer number] = a.[customer number] 
    LEFT JOIN NBS_BoundBook..contacts c 
.... 
+0

これは私のために働いた、thaks !! – Jenesis

関連する問題