webForumDet fria alternativet

Fel typ - No value given...

Databaser & SQLur Databashanterare & SQL

9 svar · 282 visningar · startad av CatZ

CatZMedlem sedan jan. 20022 440 inlägg
#1
SQL 	= " SELECT t.LagID, t.Klubb, t.Kontakt, " _
		& " COUNT(t2.rImp) AS rTotalImp, COUNT(t2.rVP) As rTotalVP, " _
		& " t2.rImp, t2.rVP, t2.Omgang " _
		& " FROM tblLag t" _
		& " LEFT JOIN tblResultat t2 " _
		& " ON t.LagID = t2.LagID " _
		& " GROUP BY t.LagID, t.Klubb, t.Kontakt, " _
		& " t2.rImp, t2.rVP, t2.Omgang " _
		& " ORDER BY rTotalVP DESC "
Set objRS = dbCom.Execute(SQL)

ger meddelandet :

Microsoft JET Database Engine fel '80040e10'
No value given for one or more required parameters.
/smdm/smdm.asp, line 17

Varför ?

och som ni alla vet är raden det är fel på den rad som anropar sql frågan dvs Set objRS = dbCom.Execute(SQL)

CatZMedlem sedan jan. 20022 440 inlägg
#2

Sitter och fipplar runt lite med saker jag hittade på w3 school Men det vill inte fungera så bra.

@ndersMedlem sedan juni 200032 969 inlägg
#3

Kontrollera att alla tabell- och fältnamn i frågan stämmer.

mvh,

OveRRidEMedlem sedan feb. 200112 078 inlägg
#4

Nu innehåller frågan ASP, det ser jag, men jag flyttar den till SQL ändå, där jag vet att den får bättre hjälp.

CatZMedlem sedan jan. 20022 440 inlägg
#5

Tar jag bort ORDER BY så fungerar det utmärkt...

CatZMedlem sedan jan. 20022 440 inlägg
#6

Med funktionen GROUP BY så spelar det ingen roll om man vill ha det DISTINCT eller så... Jag är väldigt vimsig men detta vill jag veta. (hoppas ni förstår) Jag vill kunna använda ORDER BY och jag vill inte ha ut lag delen DISTINCT dvs att varje Klubb skrivs ut 1 gång och att det sorteras på rTotalImp.

Hur ska jag då ändra koden?

SQL 	= " SELECT COUNT(t2.rImp) AS rTotalImp, COUNT(t2.rVP) As rTotalVP, " _
		& " t2.rImp, t2.rVP, t2.Omgang, " _
		& " t.LagID, t.Klubb, t.Kontakt " _
		& " FROM tblResultat t2 " _
		& " INNER JOIN tblLag t " _
		& " ON t.LagID = t2.LagID " _
		& " GROUP BY t.LagID, t.Klubb, t.Kontakt, " _
		& " t2.rImp, t2.rVP, t2.Omgang "
Set objRS = dbCom.Execute(SQL)
@ndersMedlem sedan juni 200032 969 inlägg
#7

CatZ skrev:

Tar jag bort ORDER BY så fungerar det utmärkt...

Om du använder Access kan du inte använda aliasnamn på COUNTs etc i ORDER BY, utan du måste ange fältets ordningsnummer. ORDER BY 2 alltså, i din originalkod.

Mvh,

CatZMedlem sedan jan. 20022 440 inlägg
#8

tack för hjälpen så långt! Sorteringen funkar nu. Då återstår bara problemet med dubletterna.

Nu testar jag att göra en sum(fält) as värde men när jag sedan skriver ut det hela så får jag dubbletter på koden:

SQL 	= " SELECT SUM(t2.rImp) AS rTotalImp, SUM(t2.rVP) As rTotalVP, " _
		& " t2.rImp, t2.rVP, t2.Omgang, " _
		& " t.LagID, t.Klubb, t.Kontakt " _
		& " FROM tblResultat t2 " _
		& " INNER JOIN tblLag t " _
		& " ON t.LagID = t2.LagID " _
		& " GROUP BY t.LagID, t.Klubb, t.Kontakt, " _
		& " t2.rImp, t2.rVP, t2.Omgang " _
		& " ORDER BY 2 DESC"

Omg rTotalImp får värdet 660 totalt så skrivs alla värdena ut dvs summan för varje "row" där lagid'na stämmer med frågan. Nu finns det två rImp i db och därför skrivs rTotalImp ut 2ggr.

Kan man lösa det i SQL frågan på något sätt ?

Engine^Medlem sedan dec. 20003 887 inlägg
#9

Är det möjligen DISTINCTROW du ska använda? Har för mig att det motsvarar DISTINCT när man kör JOIN...

Kan vara så att jag är ute och cyklar, men jag hoppas inte det för det snöar ute nu ju... :OO

CatZMedlem sedan jan. 20022 440 inlägg
#10

Tyvärr händer ingenting med hjälp av det :x Kanske jag som använder fel, ska kolla det lite nogrannare

W3Schools SQL Quiz
Result:
20 of 20

100%

Perfect!!!

Men inte tusan lyckas jag lösa det här problemet.

133 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)