Avatar billede moejensen Nybegynder
01. april 2008 - 11:08 Der er 4 kommentarer og
1 løsning

Tæl antal forekomster på en måned

Jeg har en DB med et feldt datetime der indeholder en linie for hver forekomst. ex:

01-01-2007 16:54:54
02-01-2007 13:54:54
03-02-2007 14:54:54
04-02-2007 11:54:54

Jeg vil gerne have lavet et SQL udtræk der returnere hvormange forekomster der er pr. måned. Så udtrækket for ovenstående er:

01-2007 2
02-2007 2

Ved hjælp af lidt søgning her på exp, er jeg kommet frem til denne sætning, men den virker ikke, og må indrømme at jeg ikke helt forstår de funktioner der er brugt. Have håbet at jeg bare kunne bruge en substring, men det virkede ikke.

SQL16 = "SELECT convert(nvarchar(10), Max(datetime_from), 104) AS strDato, COUNT(datetime_from) AS AntalPerDag " & _
        "FROM dbo.""Consorte_CON:CALL"" " & _
        "WHERE (datetime_from>{ts '" & getMonthPeriod(period, 6, 1) & " 00:00:00'} And datetime_from<{ts '" & getMonthPeriod(period, 6, 0) & " 00:00:00'}) AND (access_number_description Like '%" & getCustomerName(agent) & "%') " & _
        "GROUP BY DATEDIFF(d, datetime_from, GETDATE()) " & _
        "ORDER BY DATEDIFF(d, datetime_from, GETDATE()) ASC"
Avatar billede ldanielsen Nybegynder
01. april 2008 - 15:01 #1
Prøv med GROUP BY DATEPART (m, datetime_from)
Avatar billede moejensen Nybegynder
01. april 2008 - 15:28 #2
hold da op, nu er den der næsten.

Hvordan retter jeg convert(nvarchar(10), Max(datetime_from), 104) AS strDato til, så den kun skriver måned og år, altså: 01-2007 eller 12-2007?

Hvordan får jeg den til at sortere så 01-2007 kommer før 02-2007. JEg har flernet den ORDER BY jeg havde, da den fejlede med den på
Avatar billede moejensen Nybegynder
01. april 2008 - 16:01 #3
Jeg har også lige et tillægsspørgsmål til en anden SQL, hvor jeg bruger det du lige har lært mig, men her vil jeg gerne have et gennemsnit ud, hvorfor jeg bruger AVG(). PRoblemet er at det ser ud til at den ikke tager avg pr måned, som de er gruppet efter, men noget andet. HAr du et bud på dette også. Min SQL ser således ud:

SQL3 = "SELECT avg(waiting_time) AS 'Average waiting time for calls there were answered in sec'" & _
        "FROM dbo.""Consorte_CON:CALL"" " & _
        "WHERE (datetime_from>{ts '" & getMonthPeriod(period, 2, 1) & " 00:00:00'} And datetime_from<{ts '" & getMonthPeriod(period, 1, 0) & " 00:00:00'}) AND (access_number_description Like '%" & getCustomerName(agent) & "%') AND (answered=1)" & _
        "GROUP BY DATEPART (m, datetime_from) "
Avatar billede moejensen Nybegynder
02. april 2008 - 11:17 #4
Nogle bud? :-)
Avatar billede moejensen Nybegynder
15. december 2015 - 20:37 #5
lukkes
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