2017-08-28 2 views
0

Ich frage mich, wie ich Kundenname (CUSTNAM) von Tabelle rm001 zu dieser Abfrage & inner join zu meinem SSRS-Bericht hinzugefügt habe. Könnte helfen, dies hinzuzufügen. DankeHinzufügen eines zusätzlichen inneren Joins mit mehreren Tabellen SQL

Ich habe versucht, nach der "von" saleslineitems als "und" hinzuzufügen, aber es brach den SSRS-Bericht.

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

Nur ein paar Kommentare: Alias ​​in Tabellen Spalten. Qualifizieren Sie die Where-Klausel-Filterspalten vollständig. Wenn ein Filterwert von "c" stammt, verhält sich der linke Join wie ein innerer Join und die Nullenwerte, die vom linken Join generiert werden, werden ausgeschlossen, da NULL nicht diesem Filterwert entspricht. Sie sollten auch zeigen, was Sie versucht haben, damit wir uns ansprechen können, wo Sie falsch gelaufen sind, und Sie können daraus lernen! – xQbert

Antwort

4

so etwas funktionieren sollte:

..... 
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

das hat für mich funktioniert, thaks !! – Jenesis

Verwandte Themen