Skriv gärna ut SQL-frågan till webbläsaren i stället, så får vi se hur den kompletta frågan ser ut, med variabelvärden och allt.
Response.write SQL3
Response.End
Set Poangliga=objConnect.Execute(strSQL3)
Mvh
19 svar · 538 visningar · startad av Ralle
Jag vet att den är svårläst , men jag får ovanstående felmeddelande på rad 31.
strSQL3="SELECT Nr, Fornamn, Efternamn, Position, AntMatcher, Mal, iif(Assist1 is null,0,Assist1)+iif(Assist2 is null,0,Assist2) AS Assist,
iif(Mal is null,0,Mal)+iif(Assist1 is null,0,Assist1)+iif(Assist2 is null,0,Assist2) AS Poang, Mal/AntMatcher AS MalperMatch,
(Mal+Assist)/AntMatcher AS PoangperMatch FROM (SELECT SSK_trupp.Nr, SSK_trupp.Fornamn, SSK_trupp.Efternamn, SSK_trupp.Position,
Sum(Select Count(Match) FROM Matcher WHERE (Sasong1='" & Sasong3 & "' AND Spelare=SSK_trupp.Id)) AS AntMatcher,
Sum(Select Sum(Mål) FROM Skytteliga_Elitserien WHERE (Sasong2='" & Sasong3 & "' AND Spelare1=SSK_trupp.Id)) AS Mal,
Sum(Select Sum(Assist1) FROM Skytteliga_Elitserien WHERE (Sasong2='" & Sasong3 & "' AND Spelare1=SSK_trupp.Id)) AS Assist1,
Sum(Select Sum(Assist2) FROM Skytteliga_Elitserien WHERE (Sasong2='" & Sasong3 & "' AND Spelare1=SSK_trupp.Id)) AS Assist2
FROM Matcher, SSK_trupp, Skytteliga_Elitserien WHERE Matcher.Sasong1='" & Sasong3 & "' AND Skytteliga_Elitserien.Sasong2='" & Sasong3 & "' AND Matcher.Spelare=SSK_trupp.Id
OR Skytteliga_Elitserien.Spelare1=SSK_trupp.Id GROUP BY SSK_trupp.Id, SSK_trupp.Nr, SSK_trupp.Fornamn, SSK_trupp.Efternamn, SSK_trupp.Position)
ORDER BY Mal+Assist1+Assist2 DESC, Mal DESC, Assist1+Assist2 DESC"
[red]31[/red] Set Poangliga=objConnect.Execute(strSQL3)
Jag skriver dit radnumret så ni vet vilken.
Hoppas någon kan hjälpa mig.
Skriv gärna ut SQL-frågan till webbläsaren i stället, så får vi se hur den kompletta frågan ser ut, med variabelvärden och allt.
Response.write SQL3
Response.End
Set Poangliga=objConnect.Execute(strSQL3)
Mvh
Sorry, skrivfel. Det är ju strSQL3 du ska skriva ut, det är ju så variabeln med din SQL-fråga heter.
Response.write strSQL3
Response.End
Set Poangliga=objConnect.Execute(strSQL3)
Mvh
SELECT Nr, Fornamn, Efternamn, Position, AntMatcher, Mal, iif(Assist1 is null,0,Assist1)+iif(Assist2 is null,0,Assist2) AS Assist,
iif(Mal is null,0,Mal)+iif(Assist1 is null,0,Assist1)+iif(Assist2 is null,0,Assist2) AS Poang, Mal/AntMatcher AS MalperMatch,
(Mal+Assist)/AntMatcher AS PoangperMatch FROM (SELECT SSK_trupp.Nr, SSK_trupp.Fornamn, SSK_trupp.Efternamn, SSK_trupp.Position,
Sum(Select Count(Match) FROM Matcher WHERE (Sasong1='2003-2004' AND Spelare=SSK_trupp.Id)) AS AntMatcher,
Sum(Select Sum(Mål) FROM Skytteliga_Elitserien WHERE (Sasong2='2003-2004' AND Spelare1=SSK_trupp.Id)) AS Mal,
Sum(Select Sum(Assist1) FROM Skytteliga_Elitserien WHERE (Sasong2='2003-2004' AND Spelare1=SSK_trupp.Id)) AS Assist1,
Sum(Select Sum(Assist2) FROM Skytteliga_Elitserien WHERE (Sasong2='2003-2004' AND Spelare1=SSK_trupp.Id)) AS Assist2
FROM Matcher, SSK_trupp, Skytteliga_Elitserien WHERE Matcher.Sasong1='2003-2004' AND Skytteliga_Elitserien.Sasong2='2003-2004' AND Matcher.Spelare=SSK_trupp.Id OR Skytteliga_Elitserien.Spelare1=SSK_trupp.Id
GROUP BY SSK_trupp.Id, SSK_trupp.Nr, SSK_trupp.Fornamn, SSK_trupp.Efternamn, SSK_trupp.Position)
ORDER BY Mal+Assist1+Assist2 DESC, Mal DESC, Assist1+Assist2 DESC
Så här blir det.
Ick! Det var det kladdigaste fråga jag kollat på på länge... ;)
SELECT Nr, Fornamn, Efternamn, Position, AntMatcher, Mal, SSK_trupp.Nr, SSK_trupp.Fornamn, SSK_trupp.Efternamn, SSK_trupp.Position,
IIf(Assist1 IS NULL, 0, Assist1) + IIf(Assist2 IS NULL, 0, Assist2) AS Assist,
IIf(Mal IS NULL, 0, Mal) + IIf(Assist1 IS NULL, 0, Assist1) + IIf(Assist2 IS NULL,0,Assist2) AS Poang,
Mal/AntMatcher AS MalperMatch,
(Mal+Assist)/AntMatcher AS PoangperMatch,
Sum(Select Count(Match) FROM Matcher WHERE (Sasong1='2003-2004' AND Spelare=SSK_trupp.Id)) AS AntMatcher,
Sum(Select Sum(Mål) FROM Skytteliga_Elitserien WHERE (Sasong2='2003-2004' AND Spelare1=SSK_trupp.Id)) AS Mal,
Sum(Select Sum(Assist1) FROM Skytteliga_Elitserien WHERE (Sasong2='2003-2004' AND Spelare1=SSK_trupp.Id)) AS Assist1,
Sum(Select Sum(Assist2) FROM Skytteliga_Elitserien WHERE (Sasong2='2003-2004' AND Spelare1=SSK_trupp.Id)) AS Assist2
FROM Matcher, SSK_trupp, Skytteliga_Elitserien
WHERE [b]([/b]Matcher.Sasong1='2003-2004'
AND Skytteliga_Elitserien.Sasong2='2003-2004'
AND [b]([/b]Matcher.Spelare=SSK_trupp.Id OR Skytteliga_Elitserien.Spelare1=SSK_trupp.Id[b]))[/b]
GROUP BY SSK_trupp.Id, SSK_trupp.Nr, SSK_trupp.Fornamn, SSK_trupp.Efternamn, SSK_trupp.Position)
ORDER BY Mal+Assist1+Assist2 DESC, Mal DESC, Assist1+Assist2 DESC
Kör du den såhär så bör du få ett vettigare felmeddelande... Du lär ju behöva bryta ut dina aggregeringsfunktioner samt styra upp din GROUP BY.
Kör du den såhär så bör du få ett vettigare felmeddelande...
Hur skulle det kunna bli ett vettigare felmeddelande genom att göra hans kod mer läsbar? Alltihopa blir ju fortfarande en sträng som sedan manglas på genom .execute.
Eller? :q
Studerar du den lite mer ingående så ser du nog att jag kammat frågan en del också ;)
Det ligger i orginalet en massa syntax-fel.
Det måste vara något annat, jag får samma meddelande nu.
Den fungerar ju när jag testar den i Access under frågor.
Det där med "aggregeringsfunktioner " förstår jag inte vad du menar med????
Hur då styra upp GROUP BY?
Om frågan fungerar i Access känns det som att din övriga kod inte riktigt utför det den är skapad för att utföra. ;)
Show us your code! :D
Det här är den koden, förutom variabeln "Sasong3" som har dom där fnuttarna.
Det här står lite högre upp.
HTTP 500.100 - Internt serverfel - ASP-fel
Internet Information Services
Ralle skrev:
Den fungerar ju när jag testar den i Access under frågor.
Om du använder ODBC-drivern i VBScript-koden så byt till OLEDB. Om du redan kör OLEDB testa vad som händer om du byter till ODBC.
Nu har jag bytt till ODBC. Då får jag inte felmeddelandet längre.
"objekt saknas" får jag nu, vid loopens början längre ner.
Jaha. Det låter ju väldigt mystiskt. Vilket objekt är det som saknas? "Poangliga"?
Annars vet jag inte .. Din query är ganska komplex och om den funkar direkt i Access så känns som om du borde experimentera med att plocka sönder den och stuva om grejer tills den så småningom förhoppningsvis trillar igenom i ADO:n också.
Nu förutsätter jag att det inte är ett rent kodfel och att andra frågor fungerar på samma ställe i koden.
Engine^ skrev:
Studerar du den lite mer ingående så ser du nog att jag kammat frågan en del också ;)
Det ligger i orginalet en massa syntax-fel.
Tänkte väl det. :)
Det verkar fungera i ODBC nu.
Engine^ skrev:
Du lär ju behöva bryta ut dina aggregeringsfunktioner samt styra upp din GROUP BY.
Kan du förklara lite vad du menar?
Jag fick inget riktigt grepp om hur din fråga var uppbyggd, men eftersom det verkar fungera ändå så. Jag tyckte det såg ut som om du skulle få lite felmeddelanden från den frågan.
Förslaget du lämnade fungerar varken under ODBC eller OLEDB.
Frågan är uppbyggd så att den ska hämta en spelare och sen räkna ut antal matcher, mål och assist per spelare. Eller egentligen är det två frågor. En som tar varje spelare och sen räknar ut det jag tidigare skrev här. Den andra sköter bl.a. sortering.