Avatar billede jensen363 Forsker
21. april 2004 - 11:34 Der er 20 kommentarer og
1 løsning

Datosortering og visning af sidste 5 faktureringsdatoer

I forbindelse med udskrivning af faktura fra en faktureringsdatabase, har jeg behov for at vælge faktureringsdatoer fra en dropdown boks. Fakture forefindes i to tabeller, og nedenstående benyttes til at udvælge datoer fra de to tabeller :

SELECT Format$([udskrivningsdato],"dd"". ""mmmm yyyy") AS fakturadato, "1. Erindring" AS ID FROM tblData GROUP BY Format$([udskrivningsdato],"dd"". ""mmmm yyyy"), "1. Erindring" UNION SELECT Format$([udskrivningsdato],"dd"". ""mmmm yyyy") AS fakturadato, "2. Erindring" AS ID FROM tblDataIII GROUP BY Format$([udskrivningsdato],"dd"". ""mmmm yyyy"), "2. Erindring"

Spørgsmål :

1. Hvordan får jeg en tilfredsstillende sortering af datoerne ?
2. Hvordan får jeg kun vist de sidste 5 faktureringsdatoer fra hver tabel ?
Avatar billede terry Ekspert
21. april 2004 - 11:59 #1
You can use th efollowing syntax to get the newest five records. If more than 5 record have the same date then you will receive more than five!

SELECT TOP 5, .... ORDER By udskrivningsdato DESC
Avatar billede terry Ekspert
21. april 2004 - 12:01 #2
Just noticed that you have a UNIION in there!

You should maybe make a UNION query first, to get all the required information and then make another query based on the first to to format/group the result
Avatar billede jensen363 Forsker
21. april 2004 - 12:11 #3
Sorry ...

ORDER By udskrivningsdato DESC

giver ikke en tilfredsstillende sortering, og UNION kan ikke benyttes ifbm. SELECT TOP 5
Avatar billede jensen363 Forsker
21. april 2004 - 12:11 #4
... som du selv har erfaret ;)
Avatar billede terry Ekspert
21. april 2004 - 18:47 #5
is  it possible to send me your db so that I can see your data?

eksperten@NOSPAMsanthell.dk

remove NOSPAM
Avatar billede jensen363 Forsker
21. april 2004 - 19:16 #6
Det kan desværre ikke lade sig gøre ... indeholder forretningsfølsomme data ...
Avatar billede jensen363 Forsker
21. april 2004 - 19:22 #7
Men de to tabeller (tblData og tblDataIII) indeholder begge udskrivningsdato (egenskab dato/klokkeslet), genereret som Now() oprettelse af nye records.

Så kan du selv forsøge at oprette en db ... ;)
Avatar billede terry Ekspert
21. april 2004 - 19:47 #8
Is it not possible to send a copy of the tables so that they only contain the fields you use in the queries? and also the queries!
Yes I could make the tables myslef but I'm VERY lazy, and after all it is you who needs help :o)
It is also your data we need!
Avatar billede jensen363 Forsker
21. april 2004 - 19:59 #9
Sendt ... forespørgslen / dropdownboks ses i udskrivningsformularen
Avatar billede terry Ekspert
21. april 2004 - 20:04 #10
OK
Avatar billede terry Ekspert
21. april 2004 - 20:28 #11
I see what the problem is! Back soon
Avatar billede jensen363 Forsker
21. april 2004 - 20:30 #12
Takker ;)
Avatar billede terry Ekspert
21. april 2004 - 21:00 #13
OK!
I've made a query name (qryUNION)

SELECT Format$([udskrivningsdato],"dd"". ""mmmm yyyy") AS fakturadato, "1. Erindring" AS ID, Format([udskrivningsdato],"yyyymmdd") AS SortBy FROM tblData GROUP BY Format$([udskrivningsdato],"dd"". ""mmmm yyyy"), "1. Erindring", Format([udskrivningsdato],"yyyymmdd")  UNION SELECT Format$([udskrivningsdato],"dd"". ""mmmm yyyy") AS fakturadato, "2. Erindring" AS ID, Format([udskrivningsdato],"yyyymmdd") AS SortBy FROM tblDataIII GROUP BY Format$([udskrivningsdato],"dd"". ""mmmm yyyy"), "2. Erindring", Format([udskrivningsdato],"yyyymmdd");

Now the combo box's Row Source is changed to this

SELECT TOP 5 qryUNION.fakturadato, qryUNION.ID FROM qryUNION ORDER BY qryUNION.SortBy DESC;

Note: Because there is more than one record with the same date there are 6 records not 5!
Avatar billede jensen363 Forsker
22. april 2004 - 07:49 #14
Hi Terry

Sorry, but it´s not the answer I´m looking for. The query must return the latest 5 records forom both tblData and tblDataIII.

I can live with the sorting order ...
Avatar billede jensen363 Forsker
22. april 2004 - 14:14 #15
Hi Terry.

If you can't find a solution, it's ok.

For you effort, I still think you deserve the points ;)
Avatar billede terry Ekspert
22. april 2004 - 19:21 #16
I'll find a solution. I thought it was TOP 5 from ALL!
I'll get back as soon as possible
Avatar billede terry Ekspert
25. april 2004 - 19:06 #17
hopefully this gives you waht you want now.

(SELECT TOP 5 Format$([udskrivningsdato],"dd"". ""mmmm yyyy") AS fakturadato, "1. Erindring" AS ID, Format([udskrivningsdato],"yyyymmdd") AS SortBy
FROM tblData GROUP BY Format$([udskrivningsdato],"dd"". ""mmmm yyyy"), "1. Erindring", Format([udskrivningsdato],"yyyymmdd")
ORDER BY Format([udskrivningsdato],"yyyymmdd") DESC)

UNION (SELECT TOP 5 Format$([udskrivningsdato],"dd"". ""mmmm yyyy") AS fakturadato, "2. Erindring" AS ID, Format([udskrivningsdato],"yyyymmdd") AS SortBy
FROM tblDataIII GROUP BY Format$([udskrivningsdato],"dd"". ""mmmm yyyy"), "2. Erindring", Format([udskrivningsdato],"yyyymmdd")
ORDER BY Format([udskrivningsdato],"yyyymmdd") DESC);
Avatar billede jensen363 Forsker
26. april 2004 - 11:12 #18
Syntax error ORDER BY ....

Sorry, but it won´t work ... but don´t bother anymore, I can live with the solution I´ve alredy have ;) .... Thanks anyway ...
Avatar billede terry Ekspert
26. april 2004 - 19:51 #19
Yes I got the same error, thats why each select is in () then it works, or at least here :o)
Avatar billede jensen363 Forsker
27. april 2004 - 07:10 #20
Hi Terry ... it works, but the sorting order is no good ... :o(

I prefer the first solution
Avatar billede terry Ekspert
27. april 2004 - 19:17 #21
:o)
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