mheddaMedlem sedan feb. 2000385 inlägg Hej!
Jag undrar om det finns något smart sätt att skriva om dom här sql frågorna så att den lägger ihop alla tex januari nu lägger den ihop januari om det är exakt samma datum tex 030101 & 030101
men om jag skriver 030101 och 030106 då visar den två januari
Hur göra??
Hoppas ni förstår mitt dilemma.
---------------------------------------------------------------------------------
$strSQL_nam="SELECT DISTINCT(Month(datum)) AS MonthValue From tbl_tidrapport WHERE namn='$namn' GROUP BY Month(datum)";
--------------------------------------------------------------------------------
$strSQL_man="SELECT SUM(tid_atgang) From tbl_tidrapport WHERE namn='$namn' AND datum = '$datum' GROUP BY Month(datum)";
MVH hedda
LarsGMedlem sedan dec. 200012 464 inlägg Jag tycker att du borde få en post per månad med dina frågor. Vilken DBMS är det?
Att ha både distinct och group by är onödigt.
mheddaMedlem sedan feb. 2000385 inlägg svar
Det är Ms-sql och det verkar och jag ser nu att fältet datum är varchar det kanske är lite dumt men går det iallafall på någe sätt.
MVH Hedda
LarsGMedlem sedan dec. 200012 464 inlägg Om du byter till datetime så skall det fungera med month,
Om du inte vill byta typ, så borde det gå med
group by month(cast(datum as datetime))
mheddaMedlem sedan feb. 2000385 inlägg felmeddelande
Har nu så här men får felmeddelandet
------------------------------------------------------------------
$strSQL_month="SELECT Month(datum) From tbl_tidrapport WHERE namn='$namn' AND datum='$datum' group by month(cast(datum as datetime))";
------------------------------------------------------------------------------------
Warning: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'tbl_tidrapport.datum' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause., SQL state 37000 in SQLExecDirect in c:\inetpub\wwwroot\tid_rapport\stat_2\show.php on line 254
Man är ju inte så haj på det här men vad kan det vara??
LarsGMedlem sedan dec. 200012 464 inlägg Om du använder group by så måste du ha samma uttryck i select-listan så du måste ha
$strSQL_month="SELECT Month(cast(datum as datetime)) From tbl_tidrapport WHERE namn='$namn' AND datum='$datum' group by month(cast(datum as datetime))";
mheddaMedlem sedan feb. 2000385 inlägg Tack men..
Nu blir det inget felmeddelande men den visar iallafall
tex.
När jag har.
2003-02-21
2003-02-06
2003-02-01
2003-02-01
februari
februari
februari
Som du ser så lägger den ihop när datumet är exakt lika
som 2003-02-01 & 2003-02-01 men annars så blir det ett februari för varje inläggning som har med själva månaden 02 att göra.
Alltså när dagen förändras så känner den att inte hela datumet är lika och lägger därmed till ett till februari. Finns det något sätt att gå runt detta.
MVH Hedda
mheddaMedlem sedan feb. 2000385 inlägg Cycklar jag?
Hej igen!
Vad kan det vara??
Måste man selektera ut själva månaden typ 02 på någe vis så man kan lägga samman, om det är samma månad eller??
Jag skulle bli väldans glad om någon finner en lösning.
MVH Hedda
mheddaMedlem sedan feb. 2000385 inlägg Någon som vet förstår??
Eller är jag helt ute och cycklar??
MVH Hedda
mheddaMedlem sedan feb. 2000385 inlägg Provade med denna fråga i SQL Query Analyzer
--------------------------------------------------------------------------------
SELECT Month(cast(datum as datetime)) From tbl_tidrapport WHERE namn='Putte' group by month(cast(datum as datetime))
---------------------------------------------------------------------------------
och då fick man ut månads nummer som 2|4|8|12
men när jag körde samma fråga i koden så visar den bara 12 alltså december, december, december, december
mheddaMedlem sedan feb. 2000385 inlägg Vad kan det vara om det går i SQL Query Analyzer
Men i koden blir det samma månad hela tiden blir månad med högsta månads nummret typ december december osv ????
Vad kan det vara?? :-(
Trött på det här please om det är någon som har en aning.
Går det att lösa eller är det jag som är helt av banan ??
MVH Hedda