Hvordan kan jeg lave flere count's i samme sætning - i stil af nedenstående:
SELECT count(TabelKommentar.Kommentar Like "*konsulent*" or TabelKommentar.Kommentar Like "*besøg*") AS Besøgt, count(TabelKommentar.Kommentar Like "*opsagt*" or TabelKommentar.Kommentar Like "*slet*") AS Nedskåret count(TabelKommentar.Kommentar Like "*kundeserv*") AS Nedskåret FROM TabelKommentar
Jeg har en grimmer én - så grim, at jeg næsten håber, at andre kan finde en bedre: SELECT Sum(TabelKommentar.Kommentar Like "*konsulent*" or TabelKommentar.Kommentar Like "*besøg*") AS NegBesøgt, Sum(TabelKommentar.Kommentar Like "*opsagt*" or TabelKommentar.Kommentar Like "*slet*") AS NegNedskåret ... FROM TabelKommentar;
NegBesøgt og NegNedskåret vil herefter -hver for sig- indeholde summen af rækker, som giver "true". True = -1 og False = 0. I et andet query negerer du så tallene...
Jeg vil iøvrigt opfordre til nye boolske felter, hvor man blot krydser af, men det har du nok filosoferet over.
Jeg får følgende fejlmeddelelse, når jeg prøver din kode:
"Der kan ikke være felter af typen Memo, OLE eller Hyperlink Object i aggregatargumentet (Tabelkommentar.kommentar)
Jeg kan heller ikke forstå, hvis man ikke kan lave hele søgningen i en query?
Synes godt om
Slettet bruger
28. december 2004 - 14:16#4
Prøv dette i en SQL
SELECT count(Kommentar) WHERE kommentar Like "*konsulent*" or Kommentar Like "*besøg*" AS Besøgt FROM TabelKommentar, SELECT count(Kommentar) WHERE kommentar Like "*opsagt*" or Kommentar Like "*slet*" AS Nedskåret FROM TabelKommentar, SELECT count(Kommentar) WHERE kommentar Like "*kundeserv*" AS Nedskåret FROM TabelKommentar
Den giver en syntakstfejl fordi der mangler en operator i forespørgelsesudtrykket
Synes godt om
Slettet bruger
28. december 2004 - 14:35#6
DOH mig selv!
SELECT count(Kommentar) FROM TabelKommentar WHERE kommentar Like "*konsulent*" or Kommentar Like "*besøg*" AS Besøgt , SELECT count(Kommentar) FROM TabelKommentar WHERE kommentar Like "*opsagt*" or Kommentar Like "*slet*" AS Nedskåret , SELECT count(Kommentar) FROM TabelKommentar WHERE kommentar Like "*kundeserv*" AS Nedskåret
Synes godt om
Slettet bruger
28. december 2004 - 14:36#7
Hmm og igen :-)
SELECT count(Kommentar) AS Besøgt FROM TabelKommentar WHERE kommentar Like "*konsulent*" or Kommentar Like "*besøg*" , SELECT count(Kommentar) AS Nedskåret FROM TabelKommentar WHERE kommentar Like "*opsagt*" or Kommentar Like "*slet*" , SELECT count(Kommentar) AS Kundeserv FROM TabelKommentar WHERE kommentar Like "*kundeserv*"
Nu skriver den, at den mangler et komma, men det kan jeg umiddelbart ikke se?
SELECT count(Kommentar) AS Besøgt FROM TabelKommentar WHERE kommentar Like "*konsulent*" or Kommentar Like "*besøg*", SELECT count(Kommentar) AS Nedskåret FROM TabelKommentar WHERE kommentar Like "*opsagt*" or Kommentar Like "*slet*", SELECT count(Kommentar) AS Kundeserv FROM TabelKommentar WHERE kommentar Like "*kundeserv*"
Der er en syntakstfejl fordi der mangler et komma i forespørgelsesudtrykket "kommentar Like "*konsulent*" or Kommentar Like "*besøg*" , SELECT count(Kommentar) AS Nedskåret FROM TabelKommentar WHERE kommentar Like "*opsagt*" or Kommentar Like "*slet*" , SELECT count(Kommentar) AS Kundeserv FROM TabelKommentar WHERE kommentar Like "
Synes godt om
Slettet bruger
28. december 2004 - 15:03#12
Det ser ud til at Access ikke vil køre 3 SELECT i en sætning så min løsning duer ikke, desværre.
Synes godt om
Slettet bruger
28. december 2004 - 15:05#13
Hvad med en UNION? Den gider dig så bare 3 rækker istedet for en.
SELECT count(Kommentar) AS Besøgt FROM TabelKommentar WHERE kommentar Like "*konsulent*" or Kommentar Like "*besøg*" UNION SELECT count(Kommentar) AS Nedskåret FROM TabelKommentar WHERE kommentar Like "*opsagt*" or Kommentar Like "*slet*" UNION SELECT count(Kommentar) AS Kundeserv FROM TabelKommentar WHERE kommentar Like "*kundeserv*"
Jeg har også kørt en UNION, men så kan man ikke se "As Nedskåret" og "As kundeservice" da alt bliver lagt under Besøgt... Jeg har nemlig selv siddet og kæmpet med det i længere tid ;o)
Synes godt om
Slettet bruger
28. december 2004 - 15:14#15
Ja men så ved du at første række er besøgt og anden række er nedskåret og tredje række er kundeservice da de jo returneres i den rækkefølge du beder om. Så skal du så bare køre i en løkke til dit rs er EOF.
Enig, men det er fordi de skal trækkes ud i en pivottabel, så jeg hele tiden kan følge udviklingen i de kommentarer der bliver sat ind. Og der virker den nemlig ikke, hvis de ikke har et unikt navn ;o)
Hvad med noget i denne retning: SELECT "konsulent" as Status, count(Tabel1.kommentar) as Antal FROM Tabel1 where Tabel1.kommentar like "*konsulent*" union all SELECT "besøgt", count(Tabel1.kommentar) FROM Tabel1 where Tabel1.kommentar like "*besøgt*" ;
Synes godt om
Ny brugerNybegynder
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.