webForumDet fria alternativet

MySQL/ASP: Summera om värdet i andra tabellen är lika med...

Databaser & SQL

5 svar · 757 visningar · startad av oskars

Medlem sedan nov. 20051 317 inlägg
Frågan#1

Hej!

Det här är en grej jag aldrig får rätsida på, och lär mig aldrig.

Jag vill:

Summera COUNT(ID) i Tabell1
om Tabell2("Status") är IN(1,2,4)
där Tabell2("Kundvagn") = Tabell1("Kundvagn")

Tabell1 / Kundvagn
Int: ID (Löpnummer bara)
Int: Kundvagn (Hör ihop med post i Tabell2)

Tabell2 / Kunder
Int: ID (Löpnummer bara)
Int: Kundvagn (Hör ihop med poster i Tabell2)
Int: Status

Hur gör jag detta? Vilken metod ska användas?

Tacksam för hjälp!

/ O

Medlem sedan juni 200032 967 inlägg
#2

Något sånt härnt kanske:

select count(distinct tabell1.id)
from tabell1
inner join tabell2 on tabell1.kundvagn = tabell2.kundvagn
and tabell2.status in (1, 2, 4)

mvh

Medlem sedan nov. 20051 317 inlägg
#3

Tackar!

Hur lägger jag även in GROUP BY tabell1.Product samt WHERE tabell1.ID > 200 ?

Jag har testat en mängd varianter, men hittar inte lösning.

Det enklaste vore ju om jag lärde mig så klart... men någonstans ska man ju börja :D

EDIT: Får följande fel på följande SQL-fråga:
SELECT COUNT(ID) AS a, Product AS p FROM kundvagn WHERE ID > 200 GROUP BY Product
INNER JOIN kunder ON kundvagn.customer_id = kunder.kundvagn AND kunder.Status IN(7,10)

"ODBC driver does not support the requested properties."

Tycker jag borde ha fått allt rätt där men ack inte! :)

Medlem sedan juni 200032 967 inlägg
#4

Where och group by ska vara efter joinen.
mvh

Medlem sedan nov. 20051 317 inlägg
#5

Nä jag får inte ordning på det...

Märkligt för jag har dubbelkollat allt jag kan. Ser du vad jag gör för fel? Alla kolumner finns i databasen, men någonstans är det tydligen fel...

Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT COUNT(ID) AS a, Product FROM kundvagn " & _
 "INNER JOIN kunder ON kundvagn.customer_id = kunder.Kundvagn AND kunder.Status IN(3,4,6,7,10) GROUP BY kundvagn.Product"
RecSet.Open SQL, Connect, 1, 2

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

ODBC driver does not support the requested properties.

Medlem sedan mars 20034 471 inlägg
#6

oskars skrev:

Tabell1 / Kundvagn
Int: ID (Löpnummer bara)
Int: Kundvagn (Hör ihop med post i Tabell2)

Tabell2 / Kunder
Int: ID (Löpnummer bara)
Int: Kundvagn (Hör ihop med poster i Tabell2)
Int: Status

oskars skrev:

"SELECT COUNT(ID) AS a, Product FROM kundvagn " & _
"INNER JOIN kunder ON kundvagn.customer_id = kunder.Kundvagn AND kunder.Status IN (3,4,6,7,10) GROUP BY kundvagn.Product"

Var det inte kolumnerna KUNDVAGN som var lika i de två tabellerna? Men du joinar på Customer_ID = Kundvagn vilket då blir gallimattias.
Sedan... finns Product i någon av de tabellerna? Inte enligt din kolumnöversikt ovan?
Däremot har båda tabellerna en ID-kolumn så du måste tala om vilket ID du vill räkna?

SELECT 
   COUNT(K.ID) AS a, -- (Alternativt COUNT(KV.ID) AS a) 
   KV.Product 
FROM 
  kundvagn KV
  INNER JOIN kunder K ON 
     KV.Kundvagn = K.Kundvagn AND 
     K.Status IN(3,4,6,7,10) 
GROUP BY 
   KV.Product
259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)