14. december 2006 - 15:08
Der er
8 kommentarer og 1 løsning
Ugerekort, månedsrekord
strSQLDagR = "SELECT TOP 1 PERCENT COUNT_BIG (No_) AS [AntalDagR ordre], [Document Date] FROM dbo.[3S Company A_S$Sales Invoice Header] [3S Company A_S$Sales Invoice Header] WHERE ([Sell-to Customer No_] = '45') OR([Sell-to Customer No_] = '46') OR ([Sell-to Customer No_] = '47') OR ([Sell-to Customer No_] = '48') OR ([Sell-to Customer No_] = '49') GROUP BY [Document Date] ORDER BY [AntalDagR ordre] desc" Set RsDagR= Conn.Execute(strSQLDagR) Dagsrekord = "<b>Dagsrekord</b> (" & rsDagR("Document Date") & ") : <b>" & RSDagR("AntalDagR Ordre") & "</b>" Denne bruger jeg til at finde hvilken dag der er flest poster på. Hvordan finder jeg ud af hvilken uge, og hvilken måned der er flest poster på?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
14. december 2006 - 15:35
#1
count group by week/month
14. december 2006 - 15:54
#2
Afhængig af database typen kan du bruge: GROUP BY month([Document Date]) GROUP BY DATEPART(mm,[Document Date]) GROUP BY week([Document Date]) GROUP BY DATEPART(ww,[Document Date]) GROUP BY DATEPART(ww,[Document Date],2,2) GROUP BY week([Document Date],3) Det er ikke alle databaser der kan forstå at de skal bruge mandag som første dag i ugen og bruge fire dags reglen til ugenr.
14. december 2006 - 16:30
#3
Ok, det virkede med strSQLMR = "SELECT TOP 1 PERCENT COUNT_BIG (No_) AS [AntalMR ordre], month([Document Date]) FROM dbo.[3S Company A_S$Sales Invoice Header] [3S Company A_S$Sales Invoice Header] WHERE ([Sell-to Customer No_] = '45') OR([Sell-to Customer No_] = '46') OR ([Sell-to Customer No_] = '47') OR ([Sell-to Customer No_] = '48') OR ([Sell-to Customer No_] = '49') GROUP BY month([Document Date]) ORDER BY month([Document Date]) desc" Set RsMR= Conn.Execute(strSQLMR) MRrekord = "<b>Maanedsrekord</b> (" &month([Document Date]) & ") : <b>" & RSMR("AntalMR Ordre") & "</b>" mit output er i dette tilfælde "12" hvordan ved jeg hvad år det er.. om det er 06, 05. 04 osv?
14. december 2006 - 16:33
#4
Det er en MS SQL database.. kan ikke få uge nummer til at virke
14. december 2006 - 16:35
#5
Du skal have year med på selecten og group: year([Document Date]), month([Document Date]) På Ms-sql skal du bruge: DATEPART(ww,[Document Date])
15. december 2006 - 09:21
#6
Jeg får fejlen: Der opstod en Microsoft VBScript-kørselsfejl (0x800A0005) Procedurekaldet eller argumentet er ugyldigt: 'DatePart' strSQLWR = "SELECT TOP 1 PERCENT COUNT_BIG (No_) AS [AntalWR ordre],DATEPART(ww,[Document Date]) FROM dbo.[3S Company A_S$Sales Invoice Header] [3S Company A_S$Sales Invoice Header] WHERE ([Sell-to Customer No_] = '45') OR([Sell-to Customer No_] = '46') OR ([Sell-to Customer No_] = '47') OR ([Sell-to Customer No_] = '48') OR ([Sell-to Customer No_] = '49') GROUP BY DATEPART(ww,[Document Date]) ORDER BY DATEPART(ww,[Document Date]) desc" Set RsWR= Conn.Execute(strSQLWR) WRrekord = "<b>Ugerekord</b> (" & DATEPART(ww,[Document Date]) & ") : <b>" & RSWR("AntalWR Ordre") & "</b>"
15. december 2006 - 10:10
#7
Først kunne man tro, at du havde brugt en forkert definition, men man kan anvende følge i SQL Another important date/time function worth describing is DATEPART. This function will take a date/time expression and return a single part of the date, such as hour, minute, month, day, etc. A call to this function has the following form: DATEPART(datepart, date) Where the datepart is one of the following: Year, yy, yyyy, quarter, qq, q, month, mm, m, dayofyear, dy, y, day, dd, d, week, wk, ww, weekday, dw,hour, hh, minute, mi, n, second, ss, s, millisecond, or ms. And date is a valid date expression. This function will return an integer representing the particular date part requested. Problemet ligger nok i sætningen WRrekord = "<b>Ugerekord</b> (" & DATEPART(ww,[Document Date]) & ") : <b>" & RSWR("AntalWR Ordre") & "</b>" Hvis du skal have noget ud, skal du nok bruge RsWR(DATEPART(ww,[Document Date])
20. december 2006 - 08:48
#8
strSQLWR = "SELECT TOP 1 PERCENT COUNT_BIG (No_) AS [AntalWR ordre], DATEPART(ww,[Document Date]) FROM dbo.[3S Company A_S$Sales Invoice Header] [3S Company A_S$Sales Invoice Header] WHERE ([Sell-to Customer No_] = '45') OR([Sell-to Customer No_] = '46') OR ([Sell-to Customer No_] = '47') OR ([Sell-to Customer No_] = '48') OR ([Sell-to Customer No_] = '49') GROUP BY DATEPART(ww,[Document Date]) ORDER BY DATEPART(ww,[Document Date]) desc" Set RsWR= Conn.Execute(strSQLWR) WRrekord = "<b>Ugerekord</b>: <b>" & RSWR("AntalWR Ordre") & "</b>" OK, har denne som virker, men får forkert antal ud af det. Jeg ved ugerekord er på knap 1500, men her får jeg største ugerekort på ca 800. nogen soms er fejlen?
20. december 2006 - 11:48
#9
Lukker, har oprettet nyt spm
Kurser inden for grundlæggende programmering