Avatar billede moejensen Nybegynder
17. juli 2003 - 09:19 Der er 16 kommentarer og
1 løsning

SQL problemer

Jeg har to tabeller der ser således ud:

Vessel:
- vID (autonum)
- Name (text)

Loc
- lID (autonum)
- vID (int)
- Long (int)
- Lat (int)
- report (date)

Jeg skal have lavet en sql streng der for hver vessel.vID finder den nyeste Long og Lat. Følgende skal ud af sql strengen vessel.name, loc.long, loc.lat, loc.report

Ender kan klare den?
Avatar billede nih Novice
17. juli 2003 - 09:38 #1
SELECT vessel.vname, First(loc.long) AS FørsteOflong, First(loc.lat) AS FørsteOflat, Max(loc.report) AS MaksOfreport
FROM loc INNER JOIN vessel ON loc.vid = vessel.vid
GROUP BY vessel.vid, vessel.vname;
Avatar billede moejensen Nybegynder
17. juli 2003 - 09:45 #2
jeg kan ikke helt få det til at virke, men har fundet frem til følgende:

SELECT Loc.Lat, Loc.Long, Loc.Report, Vessel.Name
FROM Vessel INNER JOIN Loc ON Vessel.vId = Loc.vId
WHERE (((Vessel.vId)=[Loc].[lId]))
ORDER BY Loc.Report DESC;

Den giver mig bare ikke den nyeste Loc.Lat, Loc.Long, Loc.Report
Avatar billede nih Novice
17. juli 2003 - 09:54 #3
Min burde nu virke.

Niels
Avatar billede moejensen Nybegynder
17. juli 2003 - 09:56 #4
hvor sortere den på datoen?
Avatar billede nih Novice
17. juli 2003 - 09:59 #5
Max(loc.report) AS MaksOfreport
Avatar billede moejensen Nybegynder
17. juli 2003 - 10:00 #6
kan man bruge max på et datofeldt?
Avatar billede moejensen Nybegynder
17. juli 2003 - 10:02 #7
ups jeg have lige glemt at rette et v, så nu virker den. tak for hjælpen
Avatar billede moejensen Nybegynder
17. juli 2003 - 10:02 #8
kan du lavet et spg
Avatar billede nih Novice
17. juli 2003 - 10:04 #9
svar
Avatar billede terry Ekspert
17. juli 2003 - 10:09 #10
not sure yours works Niels!

SELECT V.Name, (SELECT TOP 1 Long FROM LOC L WHERE L.VID = V.VID ORDER BY L.report DESC) AS [Long], (SELECT TOP 1 Lat FROM LOC L WHERE L.VID = V.VID ORDER BY L.report DESC) AS Lat
FROM Vessel AS V;
Avatar billede nih Novice
17. juli 2003 - 10:13 #11
Nej Jeg så det lige :(

Den her burde kunne gøre det.

SELECT vessel.vid, vessel.vname, loc.long, loc.lat, loc.report
FROM loc INNER JOIN vessel ON loc.vid = vessel.vid
WHERE (((loc.lid)=(SELECT TOP 1 lid
FROM loc
WHERE (((vid)=vessel.vid))
ORDER BY loc.report DESC;)));
Avatar billede terry Ekspert
17. juli 2003 - 10:18 #12
thats helps Niels :o)
Avatar billede nih Novice
17. juli 2003 - 10:20 #13
Feriekuller og Hedeslag og .....

Dårlige undskyldninger :)
Avatar billede terry Ekspert
17. juli 2003 - 10:31 #14
:o)
Avatar billede moejensen Nybegynder
17. juli 2003 - 11:40 #15
Kan du også hjælpe med den her:

Insert into Loc (vId, Long, Lat) values(request("vessel"),request("lat"),request("long"))

Problemet er at vId skal være det vId hvor vessel.name er lig request("name")
Avatar billede moejensen Nybegynder
17. juli 2003 - 11:41 #16
ups lille fejl:

Insert into Loc (vId, Long, Lat) values(request("lat"),request("long"))
Avatar billede moejensen Nybegynder
18. juli 2003 - 09:19 #17
har klaret det.
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