Jag förstår inte varför jag får olika utfall på följande två frågor i Access.
SELECT top 1 Test.artikelnr, Max(Test.datum) AS Maxfördatum, Test.saldo
FROM Test
GROUP BY Test.artikelnr, Test.saldo
HAVING (((Max(Test.datum))<#2/2/2004#))
ORDER BY Max(Test.datum) DESC;
SELECT top 1 MVXADTA001_MITTRA.MTITNO, Max(MVXADTA001_MITTRA.MTTRDT) AS MaxförMTTRDT, MVXADTA001_MITTRA.MTNSTQ
FROM MVXADTA001_MITTRA
GROUP BY MVXADTA001_MITTRA.MTITNO, MVXADTA001_MITTRA.MTNSTQ
HAVING (((Max(MVXADTA001_MITTRA.MTTRDT))<20040701))
ORDER BY Max(MVXADTA001_MITTRA.MTTRDT) DESC;
Det är så att den första frågan fungera. Den levererar ut aktuellt saldo för alla artikelnr i tabellen.
Medan fråga två endast levererar ut en rad i resultatet (alltså bara för ett artikelnr)
Det som skiljer är att i den första är datumet i ett datumfält och i den andra frågan är datumet ett tal.
SELECT artikelnr, datum, saldo
FROM Test as q
where datum in (select max(datum)
from test
where q.artikelnr = test.artikelnr
and datum <#2/2/2004#)
order by datum DESC
Nu ska jag bara putsa till det lite.
Av någon anledning får jag ut dubbelt med rader men det fixades till med en distinct.
Dock kvarstår ett problem.
Om en artikeln förekommer flera gånger på samma datum, så kommer alla raderna med. Jag vill bara ha med den senaste raden.
SELECT DISTINCT MTNSTQ, MTITNO, MTTRDT, MTWHLO, MTRGTM
FROM dbo.MITTRA q
WHERE (MTTRDT IN
(SELECT MAX(MTTRDT)
FROM dbo.MITTRA
WHERE q.MTITNO = dbo.MITTRA.MTITNO AND q.MTWHLO = dbo.MITTRA.MTWHLO AND MTTRDT < 20040701))
ORDER BY MTITNO, MTTRDT DESC, MTRGTM DESC, MTWHLO
Jag skulle då vilja sortera ut efter fältet MTRGTM, som innehåller klockslaget. Kan man få med det i samma SELECT?
MVH
David
383 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91