Frågan 20 aug. 2001 20:11 #1 Jag sitter och filar på en funktion som måste blir klar tills imorgon.
Det är en sökfråga som ska hämta information från en tabell och sedan göra en sökning ur en annan med informationen från denna.
Ex vi har en medlem som har ID nummer 10
Då ska den leta i tabellen bokningar där kundID är 10. De rader som den hittar ska den plocka ut kursID.
Sedan ska den göra en sökning i tabbelen kurser och visa de kurser man har bokat där kurs_datum inte har passerat.
Jag har inte riktigt kunskapen för att snabbt kunna knapra ihop någon funktion så det vore jätte snällt om någon kunde hjälpa mig. :O
------------------
Adde
@nders Medlem sedan juni 2000 32 967 inlägg något sånt härnt kanske?
SELECT * FROM KURSER WHERE kursID IN (SELECT DISTINCT kursID FROM bokningar WHERE kundID = 10) AND kurs_datum >= date()
använder du sql server, byt ut date() mot getdate() .
redigering: skall det kanske vara now() i access? det känns nästan så, så här i efterhand...
mvh,
------------------
can i borrow your goat?
[Redigerat av @nders den 20 aug 2001]
J jorgen Medlem sedan feb. 2001 2 412 inlägg Hej!
strSQL = "SELECT * " & _
"FROM tabell1 " & _
"INNER JOIN tabell2 " & _
"on tabell1.fält = tabell2.fält " & _
"where Id = 10 AND " & _
"kurs_datum < en_bra_datediff"
ingen fungerande kod, men jag spånade lite på hur du kan göra.
r: @nders kod är smidigare, men subqueries fungerar inte i bla mysql.
mvh Jörgen
------------------
*** Var går gränsen mellan långa kortbyxor och korta långbyxor? ***
[Redigerat av jorgen den 20 aug 2001]
@nders Medlem sedan juni 2000 32 967 inlägg tycker att det där borde funka i mysql, men lovar absolut ingenting. :)
------------------
can i borrow your goat?
Har gjort en funktion som fungerar nu.
Set utfardRS = Server.CreateObject( "ADODB.Recordset" )
utfardRS.ActiveConnection = Con
utfardRS.CursorType = adOpenStatic
utfardRS.Pagesize = 100
sqlString = "SELECT utfard_namn, utfard_id " &_
"FROM utfarder " &_
"WHERE utfard_ID IN (SELECT DISTINCT utfardID FROM utfarderkunder WHERE userID = " & userID & " ) " &_
"AND utfard_bokningsdag >= getdate() "&_
"ORDER BY utfard_datum"
utfardRS.Open sqlString
utfardRS.AbsolutePage = pg
Men jag vill få ut ID från tabbelen utfarderkunder för varje utfard som visas.
Jag vill kunna avboka exakt rätt utfärd som man väljer att klicka på.
------------------
Adde
@nders Medlem sedan juni 2000 32 967 inlägg nu förstår jag inte.
enligt din originalfråga så är ju utfarder.utfard_id och utfarderkunder.utfardid samma? då har du ju rätt id i fältet utfard_id i ditt recordset?
------------------
can i borrow your goat?
Det id jag menar är från tabellen utfarderkunder och är ordernumret
alltså det unika numret varje rad i databasen får
------------------
Adde
L LarsG Medlem sedan dec. 2000 12 464 inlägg I så fall får du göra en join
sqlString = "SELECT u.utfard_namn, u.utfard_id,uk.id " &_
"FROM utfarder as u,utfarderkunder as uk " &_
"WHERE uk.utfard_ID = uk.utfardID " & _
" AND userID = " & userID & " ) " &_
"AND u.utfard_bokningsdag >= getdate() "&_
"ORDER BY u.utfard_datum"
utfardRS.Open sqlString
utfardRS.AbsolutePage = pg
Rent modelleringsmässigt så borde du inte behöva någon räknare i tabellen utfarderkunder då userid och utfardid tillsammans är unika.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 21 aug 2001]
Jo det behövs faktiskt en räknare eftersom om en person bokar sig två gånger på samma utfard.
Då vill man ju kunna ta bort en utav dem. Jag vill ju heller inte förhindra att man kan göra bokningar på samma userid eftersom man kanske bokar en kompis.
Jag ska försöka med din funktion får jag några problem frågar jag igen :)
------------------
Adde
Jag fattar inte riktigt nu när jag har satt mig in i sökfrågan.
u.utfard_id ska det skrivas så eller specificerar du bara vilken tabbel det kommer ifrån.
Så här ser tabbelen utfardeKunder ut:
ordernr (identety)
utfardID
userID
Så här ser tabbelen utfarder ut:
utfard_id
utfard_namn
utfard_datum
Kan du skriva om så jag förstår lite bättre så vore det jätte schyst.
------------------
Adde
J jorgen Medlem sedan feb. 2001 2 412 inlägg Hej!
LarsG ger tabellen ett prefix som han senare använder för att ange både tabell och fält, då slipper man skriva ut hela tabellnamnet varje gång samt att du anger vilket fält som hör till vilken tabell.
Annars kan du få fel tex: field Id is ambigius (tror det stavas så :q )
utfarder as u
Ps. Såg att LarsG glömt en parantes i sin kod, som du får lägga till. Ds
mvh Jörgen
------------------
*** Var går gränsen mellan långa kortbyxor och korta långbyxor? ***
[Redigerat av jorgen den 22 aug 2001]
Ok nu förstår jag var t glömde han parantesen då?
------------------
Adde
L LarsG Medlem sedan dec. 2000 12 464 inlägg Nja, det är en parentes för mycket efter userID
sqlString = "SELECT u.utfard_namn, u.utfard_id,uk.id " &_
"FROM utfarder as u,utfarderkunder as uk " &_
"WHERE uk.utfard_ID = uk.utfardID " & _
" AND userID = " & userID & _
"AND u.utfard_bokningsdag >= getdate() "&_
"ORDER BY u.utfard_datum"
utfardRS.Open sqlString
utfardRS.AbsolutePage = pg
------------------
essentitia preter non sans multiplicandum
J jorgen Medlem sedan feb. 2001 2 412 inlägg Hej LarsG!
En fråga jag länge undrat över nu som du kanske vet fast att det inte är SQL (vad jag vet :e )
vad betyder:
essentitia preter non sans multiplicandum
mvh Jörgen
------------------
*** Var går gränsen mellan långa kortbyxor och korta långbyxor? ***
Nu fungerar det var ett litet fel på raden where uk.utfard_id = uk_utfardID
Ändrade den
sqlString = "SELECT u.utfard_namn, u.utfard_datum, u.utfard_id, uk.ordernr " &_
"FROM utfarder as u, utfarderkunder as uk " &_
"WHERE u.utfard_ID = uk.utfardID " & _
" AND userID = " & userID & " " &_
"AND u.utfard_bokningsdag >= getdate() "&_
"ORDER BY u.utfard_datum"
utfardRS.Open sqlString
------------------
Adde
L LarsG Medlem sedan dec. 2000 12 464 inlägg http://cgi.webforum.nu/wf/Forum11/HTML/005458.html#4
------------------
essentitia preter non sans multiplicandum