Tæl ud fra hver enkelt ugedag

Tags:    sql php

Hejsa.

Jeg så kom der sku lige noget mere.
Jeg vil gerne have sådan en liste der fortæller mig hvor mange timer der arbejdet de forskellige ugedage.

Så alle mandage er lagt sammen, alle tirsdage er lagt sammen osv.
Jeg har mine tider liggende i mysql database som timestamps.

Kan jeg lave det hele i en sql eller skal jeg lave 7 sql kald til min database for at det virker?



7 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 19 karma
Sorter efter stemmer Sorter efter dato
Du bruger de forkerte gnyffer.

Select 'from' = vælg tekststrengen 'from'
select `from` = returner værdi fra kollonnen from

Fold kodeboks ind/udSQL kode 




Du kan helt sikkert lave det i et SQL kald.

Måske du kan tage udgangspunkt i dette, jeg har ikke afprøvet om det virker.
Fold kodeboks ind/udSQL kode 


Hovedeidéen er at den returnere to værdier for hver række. Et tal der angiver ugedagen og en time sum.



Med udgangspunkt i Stefans eksempel, tror jeg at MIN, MAX gi'r det rigtige resultat. Men det vides ikke. :)

Fold kodeboks ind/udSQL kode 




Indlæg senest redigeret d. 21.03.2012 12:43 af Bruger #10216
Armen.

Jeg få spat.

Jeg kan ikke få det til at virke.

Har prøvet med begge jeres eksempler.

Her er et dump af min tabel
Fold kodeboks ind/udSQL kode 


Hvad skal jeg gøre, det må da kunne lade sig gøre?

Den siger DAYOFWEEK ikke eksistere.
Jeg har forsøgt mig lidt med noget DATEPART().

EDIT.
Nu er jeg kommet til det her og den kører den også, den giver bare ikke noget resultat
Fold kodeboks ind/udSQL kode 


Den giver kun dette:
DAYOFWEEK('from') SUM(TIMEDIFF(TIME('from'),TIME('from')))
NULL 0.000000

EDIT EDIT
Er ved at arbejde med noget WHERE, den kører godt nok sql'en, men den returnere ikke noget.
Fold kodeboks ind/udSQL kode 




Indlæg senest redigeret d. 29.03.2012 23:21 af Bruger #15663
Stefan, du er fandme en skat.

Så skal jeg bare videre derfra.

Første problem:
DAYOFWEEK( `from` ) SUM( TIMEDIFF( TIME( `from` ) , TIME( `to` ) ) )
2 -131500.000000
3 -101500.000000
4 -51500.000000
5 -60000.000000
7 -253500.000000

summen virker lidt mærkelig.

Andet problem.
Hvordan får jeg det udskrevet?



Stefan, du er fandme en skat.

Så skal jeg bare videre derfra.

Første problem:
DAYOFWEEK( `from` ) SUM( TIMEDIFF( TIME( `from` ) , TIME( `to` ) ) )
2 -131500.000000
3 -101500.000000
4 -51500.000000
5 -60000.000000
7 -253500.000000

summen virker lidt mærkelig.

Andet problem.
Hvordan får jeg det udskrevet?

Du kan putte summen ind i en time, så ser det lidt mere overskueligt ud:
time(SUM( TIMEDIFF( TIME( `from` )):
-13:15:00
-10:15:00
-05:15:00
-06:00:00
-25:35:00





Sådan.

Hvordan udskriver jeg den så?

Skal jeg lave en AS på hver af mine select også udskrive dem via While?

Og for at gøre det endnu værre, så skal den selvfølgelig starte med at udskrive på den danske måde, altså, man, tirs, ons, tors, fre, lør, søn




Indlæg senest redigeret d. 29.03.2012 23:45 af Bruger #15663
t