25. maj 2004 - 08:39Der er
24 kommentarer og 1 løsning
Bruge datetime med forskellige parameter
Hej Jeg har en tabel hvor jeg ønsker 3 forskellige forspørgsler, nogle på en bestemt dag, måned og år. Hvordan ser SQL'en ud for det? SELECT * from tabel where dato= år = 2004 SELECT * from tabel where dato= år = 2004 AND måned = 05 (maj) SELECT * from tabel where dato= år = 2004 AND måned = 05 (maj) dag = mandag (ved ikke hvordan en uge tælles). dato er som sagt af typen datetime.
Nå ja, lige en ting mere. Hvis jeg nu ønsker at tælle hvor mange forskellige dage der er i min tabel, hvordan gøres det? -Altså så hver dag kun tælles éngang.
Selvfølgelig ;) ... og sådan her, hvis du vil vælge måned også
SELECT WMControlResults.*, Format([dato],"yyyy") AS [Year], Format([dato],"mm") AS [Month] FROM WMControlResults WHERE (((Format([dato],"yyyy"))=2004) AND ((Format([dato],"mm"))=5));
Hej Jens kan man ikke gåre det i en forspørgelse? Mener jeg har brygt denne her i mySQL select DATE_FORMAT(date, '%Y-%m') as mindate from millperformance where millnumber = 10 GROUP BY mindate;
Altså noget ligende det her:(det kan dog ikke køres) SELECT Format([dato],"dd/mm/yyyy") AS DatoGroup FROM WMControlResults where Format([dato],"dd/mm/yyyy")= 18/05/2004; GROUP BY DatoGroup;
SELECT Format([dato],"dd/mm/yyyy") AS DatoGroup FROM WMControlResults WHERE (((Format([dato],"dd/mm/yyyy"))=#5/18/2004#)) GROUP BY Format([dato],"dd/mm/yyyy");
Jo, det kan godt være... Lad os nu sige at jeg har data fra 2003. Så ønsker jeg at få at vide hvor mange forskellige måneder jeg har data fra, så resultatet skulle gerne bliver 12 :)
Men det giver da mere end tovl. Kan du ikke lave et eksempel hvor der bliver talt alle dage fra maj 2004? Der kan jo være mange data'ere fra en given dag, men den skal kun tælles éngang
SELECT count(*) as cnt FROM (SELECT Month([Dato]) AS md, Year([Dato]) AS yr FROM tblDates GROUP BY Month([Dato]), Year([Dato]) HAVING Year([Dato]) = 2003 ) AS T;
Jeg har eksperimenteret lidt med en UNION forespørgsel, og herfra lave nogle antal-udtræk via MessageBox:
SELECT 1 AS ID, Format([dato],"dd/mm/yyyy") AS Result FROM WMControlResults GROUP BY 1, Format([dato],"dd/mm/yyyy") UNION SELECT 2 AS ID, Format([dato],"mmm yyyy") AS Result FROM WMControlResults GROUP BY 2, Format([dato],"mmm yyyy") UNION SELECT 3 AS ID, Format([dato],"yyyy") AS Result FROM WMControlResults GROUP BY 3, Format([dato],"yyyy");
MsgBox "Der er i alt : " & vbNewLine & DCount("*", "qryTælRegistreringer", "[ID] = 1") & " datoer registreret."
MsgBox "Der er i alt : " & vbNewLine & DCount("*", "qryTælRegistreringer", "[ID] = 2") & " måneder registreret."
MsgBox "Der er i alt : " & vbNewLine & DCount("*", "qryTælRegistreringer", "[ID] = 3") & " år registreret."
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.