webForumDet fria alternativet

Räkna ut antal omgångar.

Databaser & SQL

10 svar · 589 visningar · startad av Ralle

Medlem sedan feb. 2003210 inlägg
Frågan#1

Jag har i den här tabellen bl.a. fält för omgångar.

Omgång ett kan finnas på upp till 22 rader, gäller alla omgångar.

Nu vill jag med DISTINCT ta ut antalet omgångar som finns, och sen räkna ut deras antal. Problemet är att omgång ett återkommer i slutspelet, det kan bli fler omgångar.

strSQL="SELECT DISTINCT Omgang, (SELECT Count(Omgang) FROM Matcher WHERE Sasong1='" & Sasong3 & "') AS Omg FROM Matcher"

Den här koden ger en siffra på 1239 på 2255 rader.

Som ni förstår blir det fel.

Men hur ska jag göra?

Tacksam för hjälp.

Medlem sedan dec. 200012 464 inlägg
#2
select count(distinct omgang) 
from matcher
where sasong1 = '"  & sasong3 & "'"

Hur vet du om en omgång tillhör slutspelet eller inte?

Flyttas från ASP

Medlem sedan feb. 2003210 inlägg
#3

Jag får det här felmeddelandet:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'Count(DISTINCT Omgang)'.

Jag har ett fält som heter "Slutspel", där skriver jag ett "j" om det är slutspel.

Medlem sedan dec. 200012 464 inlägg
#4
select count(*) 
from (select distinct omgang
from matcher
where sasong1 = '"  & sasong3 & "'" 
and slutspel <> 'j')
Medlem sedan feb. 2003210 inlägg
#5

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i FROM-instruktion.

Får jag nu.

Jag tog inte med det sista, eftersom alla måste räknas.

Medlem sedan dec. 200012 464 inlägg
#6

Hur ser din fråga ut nu? Dvs efter det att variabelvärden har substituerats.

Medlem sedan feb. 2003210 inlägg
#7
strSQL="SELECT Count(*) FROM (SELECT DISTINCT Omgang FROM Matcher WHERE Sasong1='" & Sasong3 & "'")
Medlem sedan juni 200032 967 inlägg
#8

Du borde nog egentligen få ett annat fel på det där (ett asp-fel).

Flytta in slutparentesen så den ligger i SQL-frågan.

mvh

Medlem sedan feb. 2003210 inlägg
#9

Så här ser det ut nu:

strSQL="SELECT Count(*) FROM (SELECT DISTINCT Omgang FROM Matcher WHERE Sasong1='" & Sasong3 & "')"

Men då får jag felmeddelande:
Feltyp:
ADODB.Recordset (0x800A0CC1)
Objektet kunde inte hittas i mängden med det begärda namnet eller numret.

Där har jag en tilldelningsrad, den ser ut så här:

TotOmg=rstOmg("Omg")

Jag har provat att lägga till "AS Omg" i SQL'en. Men det blir samma felmeddelande.

Medlem sedan dec. 200012 464 inlägg
#10
strSQL="SELECT Count(*) as omg FROM (SELECT DISTINCT Omgang FROM Matcher WHERE Sasong1='" & Sasong3 & "')"

eller

TotOmg=rstOmg(0)
Medlem sedan feb. 2003210 inlägg
#11

Ja just det, löste det precis.

strSQL="SELECT Count(*) AS Omg FROM (SELECT DISTINCT Match FROM Matcher WHERE Sasong1='" & Sasong3 & "')"

TACK för hjälpen.

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)