10. maj 2011 - 09:03Der er
14 kommentarer og 1 løsning
Hjælp til dato funktion i sql
Hey, jeg er kørt lidt fast efterhånden som dagen i går gik, og her til morgen må jeg give op. Jeg kan simpelthen ikke få det mest simple sql til at virke lige pt., og håbede lidt nogen kunne hjælpe :)
Jeg kunne måske lige skrive den jeg havde lavet indtil videre:
SELECT Produktion.Dato AS År, Count(Fejl.Dato) AS [Antal fejl i alt] FROM Fejl INNER JOIN Produktion ON Fejl.ProdRegID = Produktion.ProdRegID WHERE (((Produktion.Dato) Between #1/1/2005# And #12/31/2009#)) GROUP BY Produktion.Dato;
Problemet er at den kører hver dato ud Jeg vil bare gerne have der står 2005 | 100 2006 | 30
eller hvor mange fejl der nu er..
Synes godt om
Slettet bruger
10. maj 2011 - 09:35#3
du kan også hæfte fejltyper på..
SELECT Format([Dato],"yyyy") AS Aar, FejlTyper.Fnavn AS Fejl, Sum(Fejl.AntalF) AS Antal FROM Fejl INNER JOIN FejlTyper ON Fejl.FtNr = FejlTyper.FtNr GROUP BY Format([Dato],"yyyy"), FejlTyper.Fnavn ORDER BY Format([Dato],"yyyy"), FejlTyper.Fnavn;
spg : Jeg kan ikke få den du skriver til at virke når jeg fylder mine værdier i :(
Synes godt om
Slettet bruger
10. maj 2011 - 09:38#5
du kan lave din egen sql sådan her:
SELECT Format([fejl].[Dato],"yyyy") AS År, Count(Fejl.Dato) AS [Antal fejl i alt] FROM Fejl INNER JOIN Produktion ON Fejl.ProdRegID = Produktion.ProdRegID WHERE (((Produktion.Dato) Between #1/1/2005# And #12/31/2009#)) GROUP BY Format([fejl].[Dato],"yyyy");
Synes godt om
Slettet bruger
10. maj 2011 - 09:41#6
#4> nej, der skal ikke fyldes nogen værdier i, den viser bare alle år og en sammentælling af fejl. Den har dog ikke fat i Produktions tabellen, men jeg har datoen i produktionstabellen og i fejltabellen mistænkt for at være den samme, så det burde være fint!~)
Okay, det er fandme super! :D Jeg havde SLET overhovedet ikke tænkt på format(), jeg kørte simpelthen fast i year() Mange tak! :)
Synes godt om
Slettet bruger
10. maj 2011 - 10:01#8
Det er jo herligt... format funktionen er god, du skal bare huske, at hvis du bruger den til at finde eks. ugenr, så skal kigge lidt nærmere på funktionen for så skal den formateres til, om det f.eks. er dk eller us standard, det gælder også hvis det nr for dag i ugen. Definition for årets første uge er nemlig forskellige og så starter de jo den nye uge om søndagen!~)
Når jeg har : SELECT Format([Dato],"yyyy") AS År, FejlTyper.Fnavn AS Fejl, FejlTyper.FtNr, Sum(Fejl.AntalF) AS Antal FROM Fejl INNER JOIN FejlTyper ON Fejl.FtNr = FejlTyper.FtNr GROUP BY Format([Dato],"yyyy"), FejlTyper.Fnavn, FejlTyper.FtNr ORDER BY Format([Dato],"yyyy");
Og jeg kun vil have fejltype 1 og 2 frem, hvorfor virker så ikke?: SELECT Format([Dato],"yyyy") AS År, FejlTyper.Fnavn AS Fejl, FejlTyper.FtNr, Sum(Fejl.AntalF) AS Antal FROM Fejl INNER JOIN FejlTyper ON Fejl.FtNr = FejlTyper.FtNr WHERE FejlTyper.FtNr = '1' AND FejlTyper.FtNr = '2'; GROUP BY Format([Dato],"yyyy"), FejlTyper.Fnavn, FejlTyper.FtNr ORDER BY Format([Dato],"yyyy");
Synes godt om
Slettet bruger
10. maj 2011 - 12:04#10
SELECT Format([Dato],"yyyy") AS År, FejlTyper.Fnavn AS Fejl, FejlTyper.FtNr, Sum(Fejl.AntalF) AS Antal FROM Fejl INNER JOIN FejlTyper ON Fejl.FtNr = FejlTyper.FtNr GROUP BY Format([Dato],"yyyy"), FejlTyper.Fnavn, FejlTyper.FtNr HAVING (((FejlTyper.FtNr)=1 Or (FejlTyper.FtNr)=2)) ORDER BY Format([Dato],"yyyy");
Synes godt om
Slettet bruger
10. maj 2011 - 12:11#11
...du havde også sat dit kriterie til at feltet skulle være både 1 og 2... det skal være 1 eller 2!~)
Men er det ikke også korrekt når jeg vil have output til både fejltype 1 og 2?
Synes godt om
Slettet bruger
10. maj 2011 - 20:18#13
du skal huske at den tjekker en post af gangen, dvs. den starter i den første post tjekker om den post er både 1 og 2. Den er den jo ikke den er måske 1 eller måske 2 men ikke begge dele. Derfor skal du bruge OR!~)
Jeg ved godt det er en anden tråd, men det kunne være du ville hjælpe mig igen. Det er samme database og samme relationer.. : http://www.eksperten.dk/spm/938961
Håber du vil :)
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.