wazidMedlem sedan maj 2001156 inlägg Hej
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.
LarsGMedlem sedan dec. 200012 464 inlägg Även om du har top 1 så kommer access att hämta alla poster där Max(MVXADTA001_MITTRA.MTTRDT) är lika.
wazidMedlem sedan maj 2001156 inlägg Jaha, det förklarar en del!
Dock kvarstår mitt problem, hur jag ska få ut en rad per artikelnr....
LarsGMedlem sedan dec. 200012 464 inlägg 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
wazidMedlem sedan maj 2001156 inlägg Perfekt!
Tack LarsG
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