CatZMedlem sedan jan. 20022 440 inlägg SQL = " SELECT tblLag.*, tblMatcher.* " _
& " FROM tblLag " _
& " LEFT JOIN tblMatcher " _
& " ON (tblLag.LagID = tblMatcher.BortaID) " _
& " AND (tblLag.LagID = tblMatcher.HemmaID); "
Hoppsan vart inte meningen att posta riktigt än, iaf ovanstående kod ger mig inte så mycket va?
Ska hämta borta delen i matchtabellen till en av samma tblLag och hemma delen i matchtabellen till andra av samma tbLag... måste man använda en massa AS då eller ?
Som det är nu när jag sitter och pular får jag ju bara fram lag infon :) om man kunde spara själva frågan som 2 skillda tabeller så kan allt "Hemma" hamna i en och "borta" i en..
hmm hur gör man :q
Jag menar det vore GANSKA tradigt att köra 3 SQL satser men det kanske man måste ?
CatZMedlem sedan jan. 20022 440 inlägg Typ som den här koden jag menar herregud, det MÅSTE ju gå att göra det snyggare ?
<%
Dim SQL, SQL2, SQL3, objRS, objRS2, objRS3, typ
typ = "1"
SQL = " SELECT * FROM tblLag"
Set objRS = dbCom.Execute(SQL)
Dim LagID, Klubb
Response.Write "<table cellspacing='0' cellpadding='3'>" _
& "<tr><td>LagID</td><td>LagNamn</td><td>ImpTotal</td>"
Do While Not objRS.EOF
LagID = objRS("LagID")
Klubb = objRS("Klubb") & " " & objRS("Kontakt")
SQL2 = " SELECT BortaID, BortaIMP, BortaVP "_
& " FROM tblMatcher " _
& " WHERE BortaID = " & LagID & " "
Set objRS2 = dbCom.Execute(SQL2)
Dim BortaIMP, BortaVP
Do While Not objRS2.EOF
BortaImp = objRS2("BortaImp")
BortaVP = objRS2("BortaVP")
objRS2.MoveNext
Loop
SQL3 = " SELECT HemmaID, HemmaIMP, HemmaVP "_
& " FROM tblMatcher " _
& " WHERE HemmaID = " & LagID & " "
Set objRS3 = dbCom.Execute(SQL3)
Dim HemmaIMP, HemmaVP
Do While Not objRS3.EOF
HemmaIMP = objRS3("HemmaIMP")
HemmaVP = objRS3("HemmaVP")
objRS3.MoveNext
Loop
Response.Write "<tr><td>" & LagID & "</td><td>" & Klubb & "</td><td>" _
& HemmaVP & "+" & BortaVP & "=" & HemmaVP + BortaVP & "</td></tr>"
objRS.MoveNext
Loop
Response.Write "</table>"
%>
Ger i alla fall följande resultat i webläsaren:
LagID LagNamn ImpTotal
1 Lammhult Mikael 1+1=2
2 Växjö Gunnar 2+2=4
3 Växjö Håkan 3+3=6
4 Lammhult Egon 4+4=8
5 Grimslöv Greger 5+5=10
6 Alvesta Bocken 6+6=12
Och är rätt men det känns som otroligt slöseri med resurser och kod.
CatZMedlem sedan jan. 20022 440 inlägg Hur slår jag ihop följande 3 SQL frågor ?
SQL = " SELECT * FROM tblLag"
Set objRS = dbCom.Execute(SQL)
Do While Not objRS.EOF
LagID = objRS("LagID")
Klubb = objRS("Klubb") & " " & objRS("Kontakt")
SQL2 = " SELECT BortaID, BortaIMP, BortaVP, Omgang "_
& " FROM tblMatcher " _
& " WHERE BortaID = " & LagID & " " _
& " ORDER BY Omgang "
Set objRS2 = dbCom.Execute(SQL2)
SQL3 = " SELECT HemmaID, HemmaIMP, HemmaVP, Omgang "_
& " FROM tblMatcher " _
& " WHERE HemmaID = " & LagID & " " _
& " ORDER BY Omgang "
Set objRS3 = dbCom.Execute(SQL3)
LarsGMedlem sedan dec. 200012 464 inlägg SQL = _
" SELECT BortaID, BortaIMP, BortaVP, Omgang, 'Borta' "_
& " FROM tblMatcher inner join lag on BortaID = LAGID " _
& " union " _
" SELECT HemmaID, HemmaIMP, HemmaVP, Omgang, 'Hemma' "_
& " FROM tblMatcher inner join lag on Hemma = LAGID " _
& " order by Lagid, 5, Omgang "
CatZMedlem sedan jan. 20022 440 inlägg Vad betyder :Microsoft JET Database Engine fel '80004005'
Kopplingsuttrycket stöds inte.
Får det på Set objRS = dbCom.Execute(SQL) är det JET som inte gillar union eller vad är det frågan om ?
Dim SQL, objRS
SQL = " SELECT BortaID, BortaIMP, BortaVP, Omgang, 'Borta' "_
& " FROM tblMatcher INNER JOIN tblLag on BortaID = LagID " _
& " union "_
& " SELECT HemmaID, HemmaIMP, HemmaVP, Omgang, 'Hemma' "_
& " FROM tblMatcher INNER JOIN tblLag on HemmaID = LagID " _
& " ORDER BY Lagid, 5, Omgang "
set objRS = dbCom.Execute(SQL)
LarsGMedlem sedan dec. 200012 464 inlägg Naje, JET har ju stöd för union så det borde inte vara det. Det brukar oftast vara problem i Joindelen om man får det felmeddelandet. Är BortaID, HemmaID och LagID av samma datatyp?
CatZMedlem sedan jan. 20022 440 inlägg i tblMatcher finns bara en datatyp och det är tal LagID i tblLag är ju Räknare.... men det ska väl inte påverka ?
LarsGMedlem sedan dec. 200012 464 inlägg Det skall gå bra så då är det något annat.
Så här då?
SQL = " SELECT BortaID, BortaIMP, BortaVP, Omgang, 'Borta' "_
& " FROM tblMatcher , tblLag " _
& " where BortaID = LagID " _
& " union "_
& " SELECT HemmaID, HemmaIMP, HemmaVP, Omgang, 'Hemma' "_
& " FROM tblMatcher , tblLag " _
& " where HemmaID = LagID " _
& " ORDER BY Lagid, 5, Omgang "
Varför har ni apostrofer runt kolumnerna "Borta? och "Hemma"?
CatZMedlem sedan jan. 20022 440 inlägg Skumt nu får jag upp:
Microsoft JET Database Engine fel '80004005'
ORDER BY-uttrycket (Lagid) innehåller fält som inte hämtas med frågan. Endast fält som hämtas med första frågan kan ingå i ORDER BY-uttrycket.
/smdm/smdm.asp, line 16
Kan det vara Lagid som är nåt vajsing med på båda varianterna?
LarsGMedlem sedan dec. 200012 464 inlägg JorgenHP:
Det är inte kolumnnamn, det är bara konstanta uttryck för att skilja posterna åt och kunna sortera.
CatZMedlem sedan jan. 20022 440 inlägg Jörgen HP : För att det kunna skilja samma tabell åt ?
LarsGMedlem sedan dec. 200012 464 inlägg Ja, nu börjar det närma sig. Byt Lagid mot Bortaid i Order by.
LarsG skrev:
JorgenHP:
Det är inte kolumnnamn, det är bara konstanta uttryck för att skilja posterna åt och kunna sortera.
Aha, så långt fattar jag nu. :) Men vilka regler gäller där, och är det någon standard som fungerar i alla dbms?
LarsGMedlem sedan dec. 200012 464 inlägg Visst du kan ha godtyckliga uttryck i select-listan och det fungerar i alla dbms.
Aha, bockar och bugar fär lektionen LarsG. :D
CatZMedlem sedan jan. 20022 440 inlägg Fungerar fint med BortaID tack för hjälpen!! :D
CatZMedlem sedan jan. 20022 440 inlägg Nej jag tog fel... nu hittar dumskräpet inte ett enda record :l
LarsGMedlem sedan dec. 200012 464 inlägg Jaha vad händer nu? Vad händer om du kör varje del av unionen för sig? Är det join-villkoren som inte uppfylls? Du får titta i varje tabell för sig och se om det inte stämmer med värdena mellan tabellerna-
CatZMedlem sedan jan. 20022 440 inlägg Jag får fram värdena men inte på ett sätt som gör det möjligt att arbeta med dem så som jag vill.
Håller på och kikar på en annan metod nu. Jag måste nog ha 2 SQL frågor iom att om jag kör 1 annat värde tillsammans med SUM från den tabellen så kan jag aldrig bara skriva ut just "det" värdet utan de andra kommer med också.