Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

requete mysql

9 réponses
Avatar
Jacques TREPP
Bonjour,

je bute sur une requète pourtant apparemment simple. à partir d'une table de
tickets, je dois obtenir
le nombre de tickets par heure et demi-heure.

Voilà ma requète qui fonctionne par heure :

select datfct as 'date',count(*) as 'nombre_tickets',left(hrfct,2) as
'heure' from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);

Pour info, la colonne hrfct est un Char(5) : HH:MM

Si vous avez une idée ...

merci


--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)

9 réponses

Avatar
news.motzarella.org
Le Wed, 10 Sep 2008 11:05:45 +0200, Jacques TREPP
a écrit:

Bonjour,

je bute sur une requète pourtant apparemment simple. à partir d'une
table de tickets, je dois obtenir
le nombre de tickets par heure et demi-heure.

Voilà ma requète qui fonctionne par heure :

select datfct as 'date',count(*) as 'nombre_tickets',left(hrfct,2) as
'heure' from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);

Pour info, la colonne hrfct est un Char(5) : HH:MM

Si vous avez une idée ...

merci




Remplacer le left par un decode de greatest/least des minutes et 30 qui
donne la demi heure ? (Oracle)


--
JB
Avatar
Firetox
Bonjour, jacques

utilise les IF de mySQL pour ca
pour savoir combien de ticket on a dans une heure il suffit de compter les
enreg <> ''
pour les demi heure je te propose de compter le nombre sur la premiere
demiheure et la deuxieme
normalement la somme des deux demi heure doit te donne le nb heure
select datfct as 'date',
sum(if(right(hrfct,2)<>'',1,0) )as 'nombre_tickets_heure',
sum(if(right(hrfct,2)<='30',1,0)) as 'nombre_tickets_demiHeure1',
sum(if(right(hrfct,2)>'30',1,0)) as 'nombre_tickets_demiHeure2'
from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);



"Jacques TREPP" a écrit dans le message de news:
48c78d68$0$9625$
Bonjour,

je bute sur une requète pourtant apparemment simple. à partir d'une table
de tickets, je dois obtenir
le nombre de tickets par heure et demi-heure.

Voilà ma requète qui fonctionne par heure :

select datfct as 'date',count(*) as 'nombre_tickets',left(hrfct,2) as
'heure' from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);

Pour info, la colonne hrfct est un Char(5) : HH:MM

Si vous avez une idée ...

merci


--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)


Avatar
Firetox
un petite erreur avec les coller copier

select datfct as 'date',
sum(if(hrfct<>'',1,0) )as 'nombre_tickets_heure',
sum(if(right(hrfct,2)<='30',1,0)) as 'nombre_tickets_demiHeure1',
sum(if(right(hrfct,2)>'30',1,0)) as 'nombre_tickets_demiHeure2'
from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);

pour les heure il suffit de compte les non ''



"Jacques TREPP" a écrit dans le message de news:
48c78d68$0$9625$
Bonjour,

je bute sur une requète pourtant apparemment simple. à partir d'une table
de tickets, je dois obtenir
le nombre de tickets par heure et demi-heure.

Voilà ma requète qui fonctionne par heure :

select datfct as 'date',count(*) as 'nombre_tickets',left(hrfct,2) as
'heure' from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);

Pour info, la colonne hrfct est un Char(5) : HH:MM

Si vous avez une idée ...

merci


--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)


Avatar
Jacques TREPP
"Firetox" a écrit dans le message de
news:48c79099$0$14057$
Bonjour, jacques

utilise les IF de mySQL pour ca
pour savoir combien de ticket on a dans une heure il suffit de compter les
enreg <> ''
pour les demi heure je te propose de compter le nombre sur la premiere
demiheure et la deuxieme
normalement la somme des deux demi heure doit te donne le nb heure
select datfct as 'date',
sum(if(right(hrfct,2)<>'',1,0) )as 'nombre_tickets_heure',
sum(if(right(hrfct,2)<='30',1,0)) as 'nombre_tickets_demiHeure1',
sum(if(right(hrfct,2)>'30',1,0)) as 'nombre_tickets_demiHeure2'
from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);






Trop fort ! ça marche. :)
Encore une fois : merci !

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Avatar
Jacques TREPP
Requète finale :

select datfct as 'date',left(hrfct,2) as 'Heure',
sum(if(right(hrfct,2)<>'',1,0) )as 'Nbr/Heure',
sum(if(right(hrfct,2)<='30',1,0)) as 'Nbr/DemiHeure1',
sum(if(right(hrfct,2)>'30',1,0)) as 'Nbr/DemiHeure2',
sum(mtttc) as 'Ca ttc'
from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);

j'ai ajouté l'heure, et le CA ttc.

merci encore

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Avatar
news.motzarella.org
Le Wed, 10 Sep 2008 11:55:44 +0200, Jacques TREPP
a écrit:

Requète finale :

select datfct as 'date',left(hrfct,2) as 'Heure',
sum(if(right(hrfct,2)<>'',1,0) )as 'Nbr/Heure',
sum(if(right(hrfct,2)<='30',1,0)) as 'Nbr/DemiHeure1',
sum(if(right(hrfct,2)>'30',1,0)) as 'Nbr/DemiHeure2',
sum(mtttc) as 'Ca ttc'
from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);

j'ai ajouté l'heure, et le CA ttc.

merci encore




Select decode(least(right(hrfct,2),'30'),right(hrfct,2),1,2) from ...
donne 1
pour 1ere 1/2 heure , 2 pour l'autre....

--
JB
Avatar
Jacques TREPP
" news.motzarella.org " a écrit dans le message de
news:
Le Wed, 10 Sep 2008 11:55:44 +0200, Jacques TREPP
a écrit:

Requète finale :

select datfct as 'date',left(hrfct,2) as 'Heure',
sum(if(right(hrfct,2)<>'',1,0) )as 'Nbr/Heure',
sum(if(right(hrfct,2)<='30',1,0)) as 'Nbr/DemiHeure1',
sum(if(right(hrfct,2)>'30',1,0)) as 'Nbr/DemiHeure2',
sum(mtttc) as 'Ca ttc'
from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);

j'ai ajouté l'heure, et le CA ttc.

merci encore




Select decode(least(right(hrfct,2),'30'),right(hrfct,2),1,2) from ...
donne 1
pour 1ere 1/2 heure , 2 pour l'autre....

--
JB




Merci pour ta réponse. Je ne comprend pas bien comment insérer dans ma
requète la fonction decode qui, d'après le guide officiel de mysql press,
sert à décrypter une chaine en lui passant un mot de passe (!?)
Pourrais-tu m'en dire un peu plus ?
je suis en version Mysql 4.1.10a

merci

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)
Avatar
news.motzarella.org
Le Wed, 10 Sep 2008 14:32:46 +0200, Jacques TREPP
a écrit:

" news.motzarella.org " a écrit dans le message
de news:
Le Wed, 10 Sep 2008 11:55:44 +0200, Jacques TREPP
a écrit:

Requète finale :

select datfct as 'date',left(hrfct,2) as 'Heure',
sum(if(right(hrfct,2)<>'',1,0) )as 'Nbr/Heure',
sum(if(right(hrfct,2)<='30',1,0)) as 'Nbr/DemiHeure1',
sum(if(right(hrfct,2)>'30',1,0)) as 'Nbr/DemiHeure2',
sum(mtttc) as 'Ca ttc'
from ticket
where datfct between '20080901' and '20080907'
group by datfct, left(hrfct,2);

j'ai ajouté l'heure, et le CA ttc.

merci encore




Select decode(least(right(hrfct,2),'30'),right(hrfct,2),1,2) from ...
donne 1
pour 1ere 1/2 heure , 2 pour l'autre....

-- JB




Merci pour ta réponse. Je ne comprend pas bien comment insérer dans ma
requète la fonction decode qui, d'après le guide officiel de mysql
press, sert à décrypter une chaine en lui passant un mot de passe (!?)
Pourrais-tu m'en dire un peu plus ?
je suis en version Mysql 4.1.10a

merci



Ben moi je suis en oracle 10G...

Decode semble être propriétaire ORACLE depuis toujours (pas trouvé en SQL
ANSI 92 où peut être remplacé par case).

S'écrit decode(var,C1,V1,C2,V2,C3,V3...,VDEF)
si var vaut C1 le decode vaut V1
si var vaut C2 le decode vaut V2
...
si rien de tout cela le decode vaut VDEF

Bien commode pour faire du conditionnel dans du non procédural.
--
JB
Avatar
Jacques TREPP
>>


Ben moi je suis en oracle 10G...

Decode semble être propriétaire ORACLE depuis toujours (pas trouvé en SQL
ANSI 92 où peut être remplacé par case).

S'écrit decode(var,C1,V1,C2,V2,C3,V3...,VDEF)
si var vaut C1 le decode vaut V1
si var vaut C2 le decode vaut V2
...
si rien de tout cela le decode vaut VDEF

Bien commode pour faire du conditionnel dans du non procédural.
--
JB




Je me disais bien, aussi ... :)
Merci, an tous cas. j'ai résolu ma requete avec if.
cordialement

--
Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)