Quote:
quote:Originally posted by jbenson001
Can you post your SQL statment?
|
Here is view one, which made too many reference requirements for view two. It's called vwOldMissingInfo:
SELECT TOP 100 PERCENT (cast(DATEPART(MONTH, dbo.Orders.SOShipDate)as varchar) + '/' + cast(DATEPART(DAY, dbo.Orders.SOShipDate)as varchar) + '/' + cast(DATEPART(YEAR, dbo.Orders.SOShipDate) as varchar)) as [Ship Date],
dbo.Orders.SONum AS [Sales Order], dbo.Orders.SOLine AS [Line Item],
dbo.Orders.TPKey AS [Trading Partner], dbo.Orders.STID AS [Ship To ID], dbo.Orders.Part AS [Customer Part #], dbo.Part.BosePN AS [Bose Part #],
dbo.Orders.Dock, CASE WHEN dbo.Orders.RAN = '' AND dbo.TradingPartner.UseRan = 1 THEN 'Missing Ran Information in Orders Table' ELSE '' END as [RAN #],
CASE WHEN dbo.TradingPartner.TPType >=2 Then dbo.Orders.RAN ELSE '' END AS [Reference Number],
dbo.Orders.ShipToNum AS [Ship To Number], dbo.Orders.MissingInfo AS [Missing Sales Order Information],
ISNULL(dbo.Address.MissingInfo, 'Missing Address Record') AS [Missing Address Information], ISNULL(dbo.Part.MissingInfo, 'Missing Part Record')
AS [Missing Part Information], ISNULL(dbo.EDI.MissingInfo, 'Missing EDI Record') AS [Missing EDI Information],
CASE WHEN dbo.TradingPartner.UseRan = 1 THEN ISNULL(dbo.RAN.MissingInfo, 'Missing RAN Record') ELSE 'N/A' END AS [Missing RAN Information],
CASE WHEN dbo.TradingPartner.TPType >=2 and dbo.Orders.RAN not in (Select dbo.VarmsRef.Ref from dbo.VarmsRef) and dbo.VarmsRef.MissingInfo != '' Then dbo.VarmsRef.MissingInfo + 'Incompatible Ref # in Orders Table'
WHEN dbo.VarmsRef.MissingInfo != '' THEN dbo.VarmsRef.MissingInfo
WHEN dbo.TradingPartner.TPType >=2 and dbo.Orders.RAN not in (Select dbo.VarmsRef.Ref from dbo.VarmsRef) THEN 'Incompatible Ref # in Orders Table'
ELSE '' END AS [Missing VarmsRef Information]
/*dbo.VarmsRef.Ref as [Reference Number]*/
FROM dbo.Part INNER JOIN
dbo.TradingPartner ON dbo.Part.TPKey = dbo.TradingPartner.TPKey RIGHT OUTER JOIN
dbo.EDI RIGHT OUTER JOIN
dbo.RAN RIGHT OUTER JOIN
dbo.Orders ON dbo.RAN.STID = dbo.Orders.STID AND dbo.RAN.Dock = dbo.Orders.Dock AND dbo.RAN.Part = dbo.Orders.Part AND
dbo.RAN.RAN = dbo.Orders.RAN ON dbo.EDI.STID = dbo.Orders.STID AND dbo.EDI.Dock = dbo.Orders.Dock AND
dbo.EDI.Part = dbo.Orders.Part LEFT OUTER JOIN
dbo.Address ON dbo.Orders.ShipToNum = dbo.Address.ShiptoNum ON dbo.Part.Part = dbo.Orders.Part LEFT OUTER JOIN
dbo.VarmsRef ON dbo.VarmsRef.TPKey = dbo.Orders.TPKey AND dbo.VarmsRef.Part = dbo.Orders.Part AND dbo.VarmsRef.Ref = dbo.Orders.RAN
WHERE (dbo.Address.Flag = 1) OR
(dbo.Part.Flag = 1) OR
(dbo.EDI.Flag = 1) OR
(dbo.RAN.Flag = 1) AND (dbo.TradingPartner.UseRan = 1) OR
(dbo.Orders.Flag = 1) OR
(dbo.VarmsRef.Flag = 1) AND (dbo.TradingPartner.TPType >=2) or
(dbo.TradingPartner.TPType >=2 )and (dbo.Orders.RAN not in (Select dbo.VarmsRef.Ref from dbo.VarmsRef) ) OR
(dbo.TradingPartner.TPType >=2 and dbo.Orders.RAN = '')
ORDER BY dbo.Orders.SOShipDate, dbo.Orders.SONum, dbo.Orders.SOLine
Here is the second view, titled vwSuffixPartErrors. This one is basically looking to see if a part with a suffix has just the part in the EDI table. If not, it should show up as an error.:
SELECT TOP 100 PERCENT (cast(DATEPART(MONTH, dbo.Orders.SOShipDate)as varchar) + '/' + cast(DATEPART(DAY, dbo.Orders.SOShipDate)as varchar) + '/' + cast(DATEPART(YEAR, dbo.Orders.SOShipDate) as varchar)) as [Ship Date],
dbo.Orders.SONum AS [Sales Order], dbo.Orders.SOLine AS [Line Item],
dbo.Orders.TPKey AS [Trading Partner], dbo.Orders.STID AS [Ship To ID],
dbo.Orders.Part AS [Customer Part #], dbo.Part.BosePN AS [Bose Part #],
dbo.Orders.Dock,
CASE WHEN dbo.Orders.RAN = '' AND dbo.TradingPartner.UseRan = 1
THEN 'Missing Ran Information in Orders Table'
ELSE '' END as [RAN #],
CASE WHEN dbo.TradingPartner.TPType >=2 Then dbo.Orders.RAN
ELSE '' END AS [Reference Number],
dbo.Orders.ShipToNum AS [Ship To Number],
dbo.Orders.MissingInfo AS [Missing Sales Order Information],
ISNULL(dbo.Address.MissingInfo, 'Missing Address Record') AS [Missing Address Information],
ISNULL(dbo.Part.MissingInfo, 'Missing Part Record') AS [Missing Part Information],
ISNULL(dbo.EDI.MissingInfo, 'Missing EDI Record') AS [Missing EDI Information],
CASE WHEN dbo.TradingPartner.UseRan = 1
THEN ISNULL(dbo.RAN.MissingInfo, 'Missing RAN Record')
ELSE 'N/A' END AS [Missing RAN Information],
CASE WHEN dbo.TradingPartner.TPType >=2 and
dbo.Orders.RAN not in (Select dbo.VarmsRef.Ref from dbo.VarmsRef)
and dbo.VarmsRef.MissingInfo != ''
Then dbo.VarmsRef.MissingInfo + 'Incompatible Ref # in Orders Table'
WHEN dbo.VarmsRef.MissingInfo != ''
THEN dbo.VarmsRef.MissingInfo
WHEN dbo.TradingPartner.TPType >=2 and dbo.Orders.RAN not in (Select dbo.VarmsRef.Ref from dbo.VarmsRef)
THEN 'Incompatible Ref # in Orders Table'
ELSE '' END AS [Missing VarmsRef Information]
FROM dbo.CustPNSuffix right join
dbo.Part on (dbo.Part.usesuffix = 2 and dbo.Part.part = dbo.CustPNSuffix.part + dbo.CustPNSuffix.suffix) LEFT OUTER JOIN
dbo.Orders on dbo.Part.part = dbo.Orders.part LEFT OUTER JOIN
dbo.TradingPartner on dbo.Orders.TPKey = dbo.TradingPartner.TPKey LEFT OUTER JOIN
dbo.RAN on dbo.RAN.RAN = dbo.Orders.RAN and dbo.Orders.stid = dbo.RAN.STID and dbo.RAN.Dock = dbo.Orders.Dock LEFT OUTER JOIN
dbo.EDI on dbo.EDI.STID = dbo.Orders.STID and dbo.EDI.Dock = dbo.Orders.Dock and
(dbo.EDI.Part = dbo.CustPNSuffix.Part or dbo.EDI.Part = dbo.Part.Part) LEFT OUTER JOIN
dbo.Address on dbo.Orders.ShipToNum = dbo.Address.ShipToNum LEFT OUTER JOIN
dbo.VarmsRef on dbo.VarmsRef.TPKey = dbo.Orders.TPKey and dbo.VarmsRef.Part = dbo.Orders.Part and
dbo.VarmsRef.Ref = dbo.Orders.RAN
WHERE
(dbo.Part.UseSuffix = 2 and dbo.Part.Part = dbo.CustPNSuffix.Part + dbo.CustPNSuffix.Suffix and
dbo.CustPNSuffix.Part not in (select distinct(dbo.EDI.Part) from dbo.EDI))
Here is the final view, which ties the two together in order to display them as one result set. It is called vwMissingInformation:
SELECT TOP 100 PERCENT * FROM dbo.vwOldMissingInfo
UNION
SELECT * FROM dbo.vwSuffixPartErrors
At first, I thought it was using the UNION that made the results go awry in ASP.NET, but when I used just the original vsOldMissingInfo, which worked originally, it no longer works like it used to either.
I believe sometimes the very first entry in that column shows up, but subsequent entries do not.