Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 11:43 Der er 26 kommentarer og
1 løsning

Hjælp med min SQL-sætning.

jeg har følgende tabeller:

Bestilling(bestillingsnr, Vognnummer, Start_D_navn, Slut_D_navn, Bestillingsdato)    =Start... og Slut... er de distrikter hvor Taxa´en(vognnummer) starter og slutter.

Distikter(D_navn, D_nr) = denne viser alle distrikter

Det jeg skal finde er de vognummer der har været i alle distrikter.
Jeg håber der nogen der kan hjælpe, da jeg er løbet tør for ideer.
gerne svar i SQL-sætning.
Avatar billede riversen Nybegynder
15. marts 2003 - 11:50 #1
du bliver vel nødt til at have en tabel som indeholde vognnummer samt distriktnr (for de destrikter vognen kører i) Eller er det underforstået at når start og slut er 60-70 så er der kørt i 60,61,62,63,64,65,66,67,68,69,70 ?
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 11:52 #2
Jeg har taget som antagelse at taxaen max kører mellem to distrikter
Avatar billede terry Ekspert
15. marts 2003 - 11:54 #3
SELECT * from Bestilling WHERE Start_D_navn <> Slut_D_navn
Avatar billede riversen Nybegynder
15. marts 2003 - 11:55 #4
jeg kender ikke det store til vb-programmering og moduler i access, men du må vel kunne lave en løkke, som tæller fra start til slut og udskriver alt imellem incl. start og slut
Avatar billede terry Ekspert
15. marts 2003 - 11:55 #5
If you only have two districts and you start in one and end in another then these must be those you are looking for IKKE?
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 11:59 #6
så for jeg både udskrevet bestillingsnr og vognnummer, og jeg kan vel ikke være sikker på at taxa´en har været i alle distrikter. jeg skal kun havde udskrevet de vognnummer hvor taxaén har været i ALLE distrikter.
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 12:03 #7
jeg har aldrig sagt jeg kun har to Distriket, der er mange. Taxaén kører max i mellem to distrikter på en tur, men den kører jo flere ture (bestillingsnr).
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 12:05 #8
ok, jeg kan godt se når jeg læser min tidligere kommentar at de kunne forstås på denne måde, men der er altså flere distrikter :-)
Avatar billede riversen Nybegynder
15. marts 2003 - 12:11 #9
så er det vel bare antallet af bestillinger * 2 eller hvad?
Avatar billede riversen Nybegynder
15. marts 2003 - 12:12 #10
hvis det er korrekt så

SELECT Vognnummer, count(*) as antal_bestillinger
FROM Bestilling
WHERE Vognnummer = 2;
Avatar billede riversen Nybegynder
15. marts 2003 - 12:12 #11
og så gange antal_bestillinger med 2
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 12:15 #12
nej, en taxa køre et vist antal ture. På de ture kører han til og fra nogle distrikter. når man tager alle turene samlet skal den havde kørt igennem alle de distrikter der er i min distikter tabel (Dnavn).
Avatar billede riversen Nybegynder
15. marts 2003 - 12:16 #13
kan du ikke lige maile mig db'en
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 12:23 #14
skal jeg sende den til din mail, som jeg kan se under din brugerinfo?
Avatar billede terry Ekspert
15. marts 2003 - 12:23 #15
This query selects all districts which each taxi has been in
SELECT DISTINCT Bestilling.Vognnummer, Bestilling.Start_D_navn as district
FROM Bestilling UNION SELECT DISTINCT Bestilling.Vognnummer, Bestilling.Slut_D_navn
FROM Bestilling;
Avatar billede riversen Nybegynder
15. marts 2003 - 12:25 #16
ja...med lidt data i helst
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 12:27 #17
Til Terry. den sammenligner jo ikke med Dnavn fra distrikter, så den ved vel ikke om den har været i alle ditrikter. det er jo ikke alle taxa´er der har været i alle distrikter. jeg skal kun bruge dem der har været i ALLE.
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 12:30 #18
den er sendt.
Avatar billede terry Ekspert
15. marts 2003 - 12:32 #19
OK!
First make a query using the SQL I gave 12:23:45. Name the query "qryUniqueDistricts"
Now make another query which compares the NUMBER of districts which each taxi has been in agains the total number of districs. IF they are the same then the taxi HAS been in all districts!


SELECT qryUniqueDistricts.Vognnummer, Count(qryUniqueDistricts.district) AS CountOfdistrict
FROM qryUniqueDistricts
GROUP BY qryUniqueDistricts.Vognnummer
HAVING (((Count(qryUniqueDistricts.district))=DCount("Distrikter","Distrikter")));
Avatar billede terry Ekspert
15. marts 2003 - 12:33 #20
this solution WILL give you the taxi which have been in ALL districts
Avatar billede terry Ekspert
15. marts 2003 - 12:43 #21
To find out if a taxi has been in ALL disticts there is NO NEED to compare which districts a taxi has been in and if it is the same as the number of districts then IT MUST have been in them all!
Avatar billede terry Ekspert
15. marts 2003 - 12:45 #22
I'll refrase that!
To find out if a taxi has been in ALL disticts there is NO NEED to compare which districts a taxi has been in. If we can count how many different districts it has been in and it is the  same as the number of districts then IT MUST have been in them all!
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 12:46 #23
den skriver den ikke kan finde navnet distrikter??
Avatar billede terry Ekspert
15. marts 2003 - 12:48 #24
what does?
Change the Dcount to
DCount("D_navn","Distrikter")));
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 12:51 #25
JUUUHUUUUUUUU, jeg tror det virker jeg tjekker lige igennem.
Avatar billede sir_smokealot Nybegynder
15. marts 2003 - 12:55 #26
riversen, der er ingen grund til at du bruger mere tid på det, for det virker nu, men mange tak engagementet.
Avatar billede terry Ekspert
15. marts 2003 - 13:13 #27
tak :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