jag har en Customer tabell som visar alla kunder. Datan kommer inte från en kunddatabas utan från orderdatabasen. Nu har jag gruperat sql sökningen på email och på så sätt får jag ut alla kunder, sedan gör jag en Count(email) för att få ut hur många beställningar en kund har gjort. det där funkar ju inte riktigt då jag vill få ut alla fält inte bara de som är status = 100. men COUNT() funktionen ska bara räkna på de som är status 100.. Hmm så här kanske? Problemet med mitt första exempel är att du inte får med kunder som inte har någon betald order, annars borde det fungera. Du har inte skrivit vilken databas du använder, men i vissa kan man göra såhär, då får du med alla kunder (email-adresser): kunddatabas? Ligger inte kund och ordertabell i samma databas? nice.. ska testa denna. jag har även WHERE argument så att man kan söka på ålder, kön etc.. ska den ligga i samm WHERE sats som status?Count med argument?
Men istället vill jag veta hur många ordrar en kund lagt som är betalade, du skulle jag allså behöva göra Count med argument.. typ COUNT(status=100).. går det att göra på nått sätt?Sv:Count med argument?
Sv:Count med argument?
SELECT COUNT(*) FROM tabell
GROUB BY email
HAVING status = 100
Sv: Count med argument?
SELECT email, -SUM(status = 100) FROM tabell GROUB BY email
/JohanSv: Count med argument?
Du skulle kunna göra något sånt här:
SELECT Customers.*, SubQuery.NumberOfPayedOrders
FROM Customers LEFT JOIN (
SELECT Orders.CustomerId, COUNT(*) AS NumberOfPayedOrders
FROM Orders
WHERE Orders.Status=100
GROUP BY Orders.CustomerId) AS SubQuery ON Customers.CustomerId = SubQuery.CustomerId
Då får du med dig alla kunder oavsett om det handlat eller ej. För det kunder som handlat får du med dig hur många av deras ordrar som är betalda.
Sv:Count med argument?