Auteur |
Message |
Axel29
Forumeur occasionnel
Messages: 27
|
Posté le:
Dim 20 Mai 2012 - 12:45 |
|
Merci !!! Comme dans le mémento SQL je ne voyais que le "NULL" je me suis dit que j'avais tiré ça d'un autre langage mais apparemment non
Donc d'après toi la requête est bonne avec un simple WHERE dateHeureCloture IS NULL ?
EDIT: Pour ceux que ça intéresse vu qu'il n'y a pas la D dans la correction proposée, voici ce que j'ai fais (rien ne garanti qu'elle est bonne):
SELECT nom, SUM(I.id) as Nb_incident
FROM Station S, Borne B, Incident I
WHERE S.id = idStation
AND idBorne = B.id
GROUP BY nom
HAVING Nb_incident > 10; |
|
|
|
|
N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire. |
Athar
Forumeur fréquent
Sexe:
Messages: 98
Localisation: France, Loire
|
Posté le:
Dim 20 Mai 2012 - 12:51 |
|
Pour le C, perso j'ai fais un COUNT(id), histoire d'être sur que tous les champs soient comptabilisé (id devant obligatoirement être remplis, ce qui n'est pas le cas d'autres champs^^).
Après, j'ai appliqué la version courte aussi (le = NULL direct quoi, donnant un truc de ce genre:
/* C */
SELECT COUNT(id) AS nbIncidentNonClôturé
FROM INCIDENT
WHERE dateHeureClôture = NULL
Le but étant de faire un comptage de tous les champs ou dateHeureCloture est vide, je pense que faire un compte des ID ne tuera pas ici^^) |
|
|
|
|
Nessim.B
Accro à Web-IG
Messages: 104
|
Posté le:
Dim 20 Mai 2012 - 12:53 |
|
Axel29 a écrit: |
Merci !!! Comme dans le mémento SQL je ne voyais que le "NULL" je me suis dit que j'avais tiré ça d'un autre langage mais apparemment non
Donc d'après toi la requête est bonne avec un simple WHERE dateHeureCloture IS NULL ?
EDIT: Pour ceux que ça intéresse vu qu'il n'y a pas la D dans la correction proposée, voici ce que j'ai fais (rien ne garanti qu'elle est bonne):
SELECT nom, SUM(I.id) as Nb_incident
FROM Station S, Borne B, Incident I
WHERE S.id = idStation
AND idBorne = B.id
GROUP BY nom
HAVING Nb_incident > 10; |
Non seulement le IS NULL est correct (donc a priori ta requête l'est également) mais sache qu'une requête avec champs = NULL est syntaxiquement fausse car NULL n'est pas une valeur. |
_________________ 2011-2012 : Licence MIAGE
2010-2011 : BTS IG option DA
2009-2010 : BTS IG |
|
|
|
MohaIG
Forumeur occasionnel
Messages: 19
|
Posté le:
Dim 20 Mai 2012 - 13:04 |
|
Axel29 a écrit: |
Merci !!! Comme dans le mémento SQL je ne voyais que le "NULL" je me suis dit que j'avais tiré ça d'un autre langage mais apparemment non
Donc d'après toi la requête est bonne avec un simple WHERE dateHeureCloture IS NULL ?
EDIT: Pour ceux que ça intéresse vu qu'il n'y a pas la D dans la correction proposée, voici ce que j'ai fais (rien ne garanti qu'elle est bonne):
SELECT nom, SUM(I.id) as Nb_incident
FROM Station S, Borne B, Incident I
WHERE S.id = idStation
AND idBorne = B.id
GROUP BY nom
HAVING Nb_incident > 10; |
Je pence qu'on ne peut pas reprendre dans le having un champ nommé "Nb_Accident", Les langages ne savent pas le faire |
|
|
|
|
Axel29
Forumeur occasionnel
Messages: 27
|
Posté le:
Dim 20 Mai 2012 - 13:05 |
|
Je suis sur mon téléphone donc je ne peux pas retrouver le lien mais j'ai justement cherché sur Google et apparement il est possible de mettre un having sur un alias |
|
|
|
|
MohaIG
Forumeur occasionnel
Messages: 19
|
Posté le:
Dim 20 Mai 2012 - 13:14 |
|
Axel29 a écrit: |
Je suis sur mon téléphone donc je ne peux pas retrouver le lien mais j'ai justement cherché sur Google et apparement il est possible de mettre un having sur un alias |
C'est ce que notre prof nous avait dit d’après mais souvenir |
|
|
|
|
MohaIG
Forumeur occasionnel
Messages: 19
|
Posté le:
Dim 20 Mai 2012 - 13:29 |
|
Je viens d'essayer sur une de mes EPTI sa fonctionne, J'ai du mal écouter le cour Donc j'ai rien dit ! |
|
|
|
|
Axel29
Forumeur occasionnel
Messages: 27
|
Posté le:
Dim 20 Mai 2012 - 14:02 |
|
MohaIG a écrit: |
Je viens d'essayer sur une de mes EPTI sa fonctionne, J'ai du mal écouter le cour Donc j'ai rien dit ! |
Héhé c'est les parties qui embrouillent J'ai toujours du mal à me souvenir si c'est sur le COUNT ou le HAVING qu'on peut mettre par exemple "HAVING 3 > 10" ou bien si il faut réécrire tout, etc. |
|
|
|
|
Athar
Forumeur fréquent
Sexe:
Messages: 98
Localisation: France, Loire
|
Posté le:
Dim 20 Mai 2012 - 14:03 |
|
MohaIG a écrit: |
Je viens d'essayer sur une de mes EPTI sa fonctionne, J'ai du mal écouter le cour Donc j'ai rien dit ! |
C'est aussi possible que cela change en fonction de la BDD^^ |
|
|
|
|
MohaIG
Forumeur occasionnel
Messages: 19
|
Posté le:
Dim 20 Mai 2012 - 14:16 |
|
Athar a écrit: |
MohaIG a écrit: |
Je viens d'essayer sur une de mes EPTI sa fonctionne, J'ai du mal écouter le cour Donc j'ai rien dit ! |
C'est aussi possible que cela change en fonction de la BDD^^ |
J'ai essayé sur MySQL |
|
|
|
|
Jacco
Newbiiiie
Messages: 7
|
Posté le:
Mer 23 Mai 2012 - 18:10 |
|
quanta a écrit: |
Citation: |
/* C */
SELECT COUNT(*) AS nbIncendieNonCloture
FROM INCENDIE
WHERE dateHeureCloture IN (
SELECT dateHeureCloture FROM INCENDIE WHERE dateHeureCloture = NULL
) |
Pourquoi pas plus simplement :
Code: |
/* C */
SELECT COUNT(*) AS nbIncendieNonCloture
FROM INCENDIE
WHERE dateHeureCloture = NULL
|
? |
C'est vrai.
C'était ce que j'avais fait au début, mais comme je trouvais ça simple j'ai essayé de compliquer un peu xD |
|
|
|
|
Proutiforme
Newbiiiie
Messages: 11
|
Posté le:
Sam 09 Juin 2012 - 19:59 |
|
Et sinon ... quelqu'un à une date pour la sortie des corrigés ? Car sur le net je n'ai trouvé que le corrigé de Math ... ( osef, à vrai dire -.- ) |
|
|
|
|
Axel29
Forumeur occasionnel
Messages: 27
|
Posté le:
Dim 10 Juin 2012 - 03:27 |
|
Ça semble bien parti pour devoir attendre la sortie des résultats pour avoir les corrigés, soit le 9 juillets (en tout cas pour ma zone) |
|
|
|
|
Axel29
Forumeur occasionnel
Messages: 27
|
Posté le:
Mer 13 Juin 2012 - 00:30 |
|
|
|
|
diablox0147
Newbiiiie
Messages: 6
|
Posté le:
Jeu 14 Juin 2012 - 12:30 |
|
Je trouve une erreur dans corrige:
3.1 B) Liste des interventions d¨¦marr¨¦es plus de 24 heures apr¨¨s l¡¯incident (identifiant de
l¡¯intervention, remarques, date et heure de l¡¯incident, date et heure de d¨¦but
d¡¯intervention).
SELECT INT.id, remarques, INC.dateHeure, INT.dateHeureD¨¦but
FROM INTERVENTION INT, INCIDENT INC
WHERE idIncident = INC.id
AND DATEDIFF(hour, INC.dateHeure, INT.dateHeureD¨¦but) > 24
Ici, ca doit etre >= 24... |
|
|
|
|
Axel29
Forumeur occasionnel
Messages: 27
|
Posté le:
Jeu 14 Juin 2012 - 12:32 |
|
Non c'est bien >24
Enfin à mon avis les deux seront acceptées |
|
|
|
|
Athar
Forumeur fréquent
Sexe:
Messages: 98
Localisation: France, Loire
|
Posté le:
Jeu 14 Juin 2012 - 12:39 |
|
Vu que c'est "plus de 24 heures", c'est bien >, sinon cela aurait était "égal ou plus de 24 heures" pour avoir un >=, enfin je suppose^^ |
|
|
|
|
diablox0147
Newbiiiie
Messages: 6
|
Posté le:
Jeu 14 Juin 2012 - 13:02 |
|
Nonnonnon.... Imaginez que l'intervention demarre a 12:00:00 , puis le deuxieme jour a 12:24:00, le temps a passe 24h24min on lance cette requete, elle retournera 24, puisque dans DATEDIFF on veut l'heure
Ou soit on reflechi comme ca:
L'intervention Demarre a N:00:00
, trois cas:
soit: N+24:00:00
Dans ce cas là le temps passe est égale à 24, mais ça ne changera rien, puisque au moment de retourner le résulta le temps est déjà passé à +24h
soit: N+([24-25[) :00:00 ici c'est même logique de ce que j'écrit en haut
soit: N+25:00:00 Le corrige couvre simplement ce cas |
|
|
|
|
Athar
Forumeur fréquent
Sexe:
Messages: 98
Localisation: France, Loire
|
Posté le:
Jeu 14 Juin 2012 - 13:09 |
|
En même temps, les corrigés sont surtout informel. Dans l'arrière boutique lors des corrections, il peut y avoir des changements au niveau national qui ne seront pas publiés sur le corrigé que nous avons^^ |
|
|
|
|
yyyyy
Forumeur fréquent
Messages: 89
|
Posté le:
Jeu 14 Juin 2012 - 13:51 |
|
diablox0147 a écrit: |
Nonnonnon.... Imaginez que l'intervention demarre a 12:00:00 , puis le deuxieme jour a 12:24:00, le temps a passe 24h24min on lance cette requete, elle retournera 24, puisque dans DATEDIFF on veut l'heure
Ou soit on reflechi comme ca:
L'intervention Demarre a N:00:00
, trois cas:
soit: N+24:00:00
Dans ce cas là le temps passe est égale à 24, mais ça ne changera rien, puisque au moment de retourner le résulta le temps est déjà passé à +24h
soit: N+([24-25[) :00:00 ici c'est même logique de ce que j'écrit en haut
soit: N+25:00:00 Le corrige couvre simplement ce cas |
Ton raisonnement est juste mais les correcteurs ne vont pas chipoter pour si peu... C'est vraiment un détail de logique. |
|
|
|
|
|