Hej
Jag brottas med en SQLfråga.
Jag har en tabell med en prislista OPRICL.
Det finns olika priser på en vara neroende på vilket antal man köper.
Jag har sedan en tabell, OSBSTD som innehåller en massa orderrader.
Nu vill jag samköra dessa tabeller och få ut priset på varje orderrad, beroende på antalet.
Jag försöker söka fram det genom att kolla antalet i orderraden dbo.OSBSTD.UCIVQT mot tariffen i prislistan q.OMQTYL.
Själva priset finns i OMSAPR.
Jag får dock inte till det riktigt i q
SELECT (OMSAPR) ger en rad för varje tariffsteg i prislistan och ger mig dubletter.
SELECT MAX (OMSAPR) ger alltid det högsta priset, oavsett antalet i orderraden.
SELECT MIN (OMSAPR) ger ingen rad alls
SELECT q.OMITNO, q.OMSAPR, q.OMPRRF, dbo.OSBSTD.UCCUNO, dbo.OSBSTD.UCITNO, dbo.OSBSTD.UCIVDT, dbo.OSBSTD.UCSUNO,
dbo.OSBSTD.UCSAAM, dbo.OSBSTD.UCOFRA, dbo.OSBSTD.UCUCOS, dbo.OSBSTD.UCIVQT, q.OMQTYL
FROM dbo.OPRICL q INNER JOIN
dbo.OSBSTD ON q.OMITNO = dbo.OSBSTD.UCITNO
GROUP BY q.OMITNO, q.OMSAPR, q.OMPRRF, dbo.OSBSTD.UCCUNO, dbo.OSBSTD.UCITNO, dbo.OSBSTD.UCIVDT, dbo.OSBSTD.UCSUNO,
dbo.OSBSTD.UCSAAM, dbo.OSBSTD.UCOFRA, dbo.OSBSTD.UCUCOS, dbo.OSBSTD.UCIVQT, q.OMQTYL
HAVING (q.OMSAPR IN
(SELECT (OMSAPR)
FROM dbo.OPRICL
WHERE q.OMITNO = dbo.OPRICL.OMITNO AND q.OMPRRF = 'a1' AND q.OMQTYL <= dbo.OSBSTD.UCIVQT)) AND (dbo.OSBSTD.UCIVDT BETWEEN
20050301 AND 20050331) AND (dbo.OSBSTD.UCITNO = '10990001')
ORDER BY dbo.OSBSTD.UCCUNO, dbo.OSBSTD.UCIVDT
Tacksam för tips....