firstchoiceMedlem sedan okt. 2001605 inlägg
SELECT PO.[No_], PO.[Description], PO.[Source No_], PO.[Ending Date], PO.[Quantity], PO.[Sales Order No_], PS.[PrulStatusComments], PS.[PrulStatusPlanDate], PS.[PrulStatusSign], CR.[Cross-Reference No_]
FROM [Production Order] PO
INNER JOIN [Item Cross Reference] CR ON PO.[Source No_] = CR.[Item No_]
LEFT JOIN [tblPrulStatus] PS ON PS.[PrulStatusPrulNr] collate Finnish_Swedish_CS_AS = PO.[No_] collate Finnish_Swedish_CS_AS
WHERE PO.[Status] = '3'
ORDER BY PO.[Ending Date]
Koden fungerar, men problemet är att tabellen [Item Cross Reference] innehåller ibland flera rader som är kopplade till [Production Order]. Men i dessa fallen skulle jag bara vilja visa den första träffen. Är detta möjligt?
CompusaMedlem sedan jan. 20022 952 inlägg
Så här kanske
SELECT PO.[No_], PO.[Description], PO.[Source No_], PO.[Ending Date], PO.[Quantity], PO.[Sales Order No_], PS.[PrulStatusComments], PS.[PrulStatusPlanDate], PS.[PrulStatusSign], CR.[Cross-Reference No_]
FROM [Production Order] PO
INNER JOIN
(
SELECT DISTINCT [Item No_]
FROM [Item Cross Reference]
) CR ON PO.[Source No_] = CR.[Item No_]
LEFT JOIN [tblPrulStatus] PS ON PS.[PrulStatusPrulNr] collate Finnish_Swedish_CS_AS = PO.[No_] collate Finnish_Swedish_CS_AS
WHERE PO.[Status] = '3'
ORDER BY PO.[Ending Date]
firstchoiceMedlem sedan okt. 2001605 inlägg
fungerar ifall jag ta bort CR.[Cross-Reference No_] från SELECT
men då visas ju inte just det referäns värde som jag vill ha fram.
LarsGMedlem sedan dec. 200012 465 inlägg
Det beror på vad du menar med första, eftersom tabeller inte är ordnade mängder så är första inte definierat.
select PO.[No_],
PO.[Description],
PO.[Source No_],
PO.[Ending Date],
PO.[Quantity],
PO.[Sales Order No_],
PS.[PrulStatusComments],
PS.[PrulStatusPlanDate],
PS.[PrulStatusSign],
CR.[Cross-Reference No_]
from [Production Order] PO
join (select [Item No_],
min([Cross-Reference No_])
from [Item Cross Reference]
group by [Item No_]) as cr
on PO.[Source No_] = CR.[Item No_]
left join [tblPrulStatus] PS
on PS.[PrulStatusPrulNr] collate Finnish_Swedish_CS_AS = PO.[No_] collate Finnish_Swedish_CS_AS
where PO.[Status] = 3
order by PO.[Ending Date]
Detta returnerar det lägsta värdet för CR.[Cross-Reference No_] per produktorder