Avatar billede cesil Nybegynder
29. november 2002 - 08:39 Der er 3 kommentarer og
1 løsning

count

Hej Eksperter
Jeg har den her select:

SELECT MAX_HOTEL.*, MAX_HOTEL_BOOKING.amount_sincle, MAX_HOTEL_BOOKING.amount_dbl, MAX_HOTEL_BOOKING.amount_sincle_smoker, MAX_HOTEL_BOOKING.amount_dbl_smoker, MAX_HOTEL_BOOKING.payment, MAX_HOTEL_BOOKING.bookfrom, MAX_HOTEL_BOOKING.bookto, MAX_HOTEL_BOOKING.booked_date, MAX_VISITORS.title, MAX_VISITORS.name as visitorname, MAX_VISITORS.company, MAX_VISITORS.country, MAX_VISITORS.smoker, MAX_VISITORS.vegetarian, MAX_VISITORS.anonymise FROM MAX_HOTEL_BOOKING LEFT OUTER JOIN MAX_HOTEL ON MAX_HOTEL_BOOKING.hotelid = MAX_HOTEL.id LEFT OUTER JOIN MAX_HOTEL_BOOKING_VISITORS ON MAX_HOTEL_BOOKING_VISITORS.hotel_booking_id = MAX_HOTEL_BOOKING.id LEFT OUTER JOIN MAX_VISITORS ON MAX_VISITORS.id = MAX_HOTEL_BOOKING_VISITORS.visitor_id WHERE MAX_HOTEL_BOOKING.projectid =16 order by MAX_HOTEL.id

Jeg vil gerne have tilføjet count(MAX_HOTEL_BOOKING.amount_sincle_smoker) as c, til query'en. Kan jeg det uden at få meddelelsen:

not contained in an aggregate function and there is no GROUP BY clause
Avatar billede bennytordrup Nybegynder
29. november 2002 - 08:46 #1
Nej. Count er en aggregate function og disse kræver en group by klausul
Avatar billede cesil Nybegynder
29. november 2002 - 08:55 #2
Nu kender jeg ikke group by klausul'en. Kan min select laves om så det kan lade sig gøre?
Avatar billede bennytordrup Nybegynder
29. november 2002 - 08:58 #3
Den første ting, du skal undgå, er en select *. Den i sig selv udelukker brug af group by. Hvis du henter nøjagtig de felter fra Max_Hotel, du skal bruge, så kan du tilføje din count til select-delen og så tilføje en group by, hvor du anfører samtlige felter i select-delen bortset fra count().

Du skal være opmærksom på, at der ikke kan laves group by på text, ntext og image (AFAIR)
Avatar billede cesil Nybegynder
29. november 2002 - 09:32 #4
Det virker fint, tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester