Avatar billede vanggaard Nybegynder
04. februar 2002 - 19:18 Der er 9 kommentarer og
2 løsninger

Hjælp til at udvide en SELECT

Hej
Jeg har følgende SELECT:
SELECT Tabel1.navn, Tabel2.sdato, Tabel2.type FROM Tabel1 INNER JOIN Tabel2 ON Tabel1.nummer=Tabel2.nummer WHERE Tabel2.sdato=DMax('(sdato)','Tabel2','nummer=' & Tabel1.nummer);

MEN istedet for bare MAX vil jeg gerne have MAX af alle sdato hvor sdato er større end newdate

Håber I kan forstå mit spg
Vanggaard
Avatar billede terry Ekspert
04. februar 2002 - 19:38 #1
not quite sure what it is you want! Do you want ALL dates > newdate? and where is the newdate?
Avatar billede vanggaard Nybegynder
04. februar 2002 - 19:53 #2
OK here is an explanation:
If tabel1 is like this:
mads 1
Henrik 2
Søren 3

and Tabel2 like this:
1 2-3-2001 a
1 6-6-2001 b
2 7-4-2001 b
3 8-1-2001 b
3 9-3-2001 a
3 1-10-2001 b

If newdate is 1-5-2001 The result from the select should be:
Mads 2-3-2001 a
Henrik 7-4-2001 b
Søren 9-3-2001 a

I want to get the newst date and datetype from tabel2 where the date is older than "newdate" and then make a match with tabel1

Vanggaard
Avatar billede terry Ekspert
04. februar 2002 - 20:05 #3
so if the newdate was 6-4-2001 then Henrik would not be in the result, is that correct?
Avatar billede vanggaard Nybegynder
04. februar 2002 - 20:08 #4
yes. But with my data is the always a match.
Avatar billede terry Ekspert
04. februar 2002 - 20:41 #5
Ok! Here is a solution, not the most elegant but I think it works!

Make a query named qtyNewDate

SELECT tabel2.nummer, tabel2.sdato, tabel2.type, tabel2.newdate
FROM tabel2
WHERE (((tabel2.sdato)<[newdate]));

Then alter your original query to>

SELECT tabel1.navn, qryNewDate.sdato, qryNewDate.type
FROM qryNewDate INNER JOIN tabel1 ON qryNewDate.nummer = tabel1.nummer
WHERE (((qryNewDate.sdato)=DMax("(sdato)","qryNewDate","nummer=" & [Tabel1].[nummer])));
Avatar billede proaccess Nybegynder
04. februar 2002 - 21:57 #6
Hva' me' a' prøv:

SELECT Tabel1.navn, Tabel2.sdato, Tabel2.type FROM Tabel1 INNER JOIN Tabel2 ON Tabel1.nummer=Tabel2.nummer WHERE Tabel2.sdato=DMax('(sdato)','Tabel2','nummer=' & Tabel1.nummer & ' AND sdato<#' &[newdate] & '#');
Avatar billede terry Ekspert
05. februar 2002 - 08:06 #7
hi proaccess> I tried your example, but just couldn get it to work, hence my not so elegant solution. Maybe a syntax error or something!
Avatar billede proaccess Nybegynder
05. februar 2002 - 08:50 #8
>Terry: The logic is - I want the maximal value of sdato that's less than newdate... and that has to be found by every tabel1.nummer...
So the newdate-part has to come in the DMax.

It could be that [newdate] has to be converted to a format([newdate],"mm-dd-yyyy")
Avatar billede terry Ekspert
05. februar 2002 - 08:55 #9
yes I thought the logic was as you mentioned it too, but when I couldnt get it to work decided on the solution I could get to work. I think you are right about formatting the date though!
Avatar billede terry Ekspert
06. februar 2002 - 19:51 #10
vanggaard>Hows it going ?
Avatar billede proaccess Nybegynder
13. marts 2002 - 07:51 #11
Kom du videre med dette, og kan vi få spørgsmålet lukket?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester