Har fastnat lite och vet inte om jag tänker helt fel men jag har en group sats men behöver koppla frågan till en annan tabell. Går det?
group satsen ser ut så här och fungerar nu..
SELECT hits.Page_ID, COUNT(*) AS antal
FROM Hits AS hits INNER JOIN
pages ON hits.Page_ID = pages.Page_ID
WHERE (hits.Customer_ID = 10) AND (hits.c_Date BETWEEN '2009-10-12 00:00:00' AND '2009-10-13 23:59:00')
GROUP BY hits.Page_ID
ORDER BY antal DESC
ni vill jag koppla kolumnen page_id till en tabell som heter "pages" så jag får fram namnet för varje "page_id" relationen till tabellen "pages" är hits.page_id=pages.id
Provade detta men får bara felet att pages.id inte ingår i den aggregerade funktionen
SELECT hits.Page_ID, COUNT(*) AS antal, pages.ID
FROM Hits AS hits INNER JOIN
pages ON hits.Page_ID = pages.Page_ID
WHERE (hits.Customer_ID = 10) AND (hits.c_Date BETWEEN '2009-10-12 00:00:00' AND '2009-10-13 23:59:00')
GROUP BY hits.Page_ID
ORDER BY antal DESC
Som Troxy säger...
Vad GROUP BY gör är att gruppera ihop flera rader till en. pages.ID kan ju ha flera värden för varje givet värde av hits.Page_ID. Därmed är det en självmotsägelse att SELECTa hits.Page_ID direkt - vilket värde ska databashanteraren välja?
Du kan som Troxy säger pröva att lägga till pages.ID i GROUP BY, alt. SELECTa MIN(pages.ID) eller MAX(pages.ID) och få ut ett av värdena.
Nu kör jag ju min inner join mot en tabell i samma databas, som det är nu är det en liten nödlösning för igentligen finns all information om sidan i en annna databas. Alltså tabellen "pages" finns i en annan databas... Hade det gått lösa på något sätt... Båda databserrna är Ms sql....