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