Requete SQL
Fermé
pulls
Messages postés
136
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
13 septembre 2023
-
Modifié par pulls le 8/02/2014 à 18:21
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 14 févr. 2014 à 11:15
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 14 févr. 2014 à 11:15
A voir également:
- Requete SQL
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Logiciel sql - Télécharger - Bases de données
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Sql server recovery - Télécharger - Gestion de données
- Sql replace plusieurs valeurs - Forum Programmation
6 réponses
Célien
Messages postés
5729
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2021
1 993
9 févr. 2014 à 18:55
9 févr. 2014 à 18:55
Salut,
On ne va pas faire l'exercice à ta place, à lire : Demander de l'aide pour vos exercices sur CCM. Tu peu apprendre SQL dans un livre ou ici par exemple : Cours SQL.
On ne va pas faire l'exercice à ta place, à lire : Demander de l'aide pour vos exercices sur CCM. Tu peu apprendre SQL dans un livre ou ici par exemple : Cours SQL.
pulls
Messages postés
136
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
13 septembre 2023
3
Modifié par pulls le 10/02/2014 à 15:31
Modifié par pulls le 10/02/2014 à 15:31
Merci Célien de vouloir m'aider.
J'ai bien lu mon cours SQL et j'ai déjà developpé des applications avec des requetes SQL, mais je n'ai pas encore rencontré ce cas de figure .
Voici ce que j'ai essayé de faire :
Comment fusionner ces 2 requetes pour avoir un seul résultat, avec les champs date, vendeur, V1,V2,produit3, Total(V1+V2+produit3) ?
S'il vous plait aidez moi, depuis plusieurs jours , je réfléchis sans suite.
merci
J'ai bien lu mon cours SQL et j'ai déjà developpé des applications avec des requetes SQL, mais je n'ai pas encore rencontré ce cas de figure .
Voici ce que j'ai essayé de faire :
SELECT date, vendeur, (SUM(produit1)+SUM(produit2)) as V1, produit3 FROM tab1 where n°_vente between 1 and 499 and N°_vente>1000 group by date,vendeur
SELECT date, vendeur , (SUM(produit1)+SUM(produit2)) as V2, produit3 FROM tab1 where n°_vente between 500 and 999 group by date,vendeur
Comment fusionner ces 2 requetes pour avoir un seul résultat, avec les champs date, vendeur, V1,V2,produit3, Total(V1+V2+produit3) ?
S'il vous plait aidez moi, depuis plusieurs jours , je réfléchis sans suite.
merci
Célien
Messages postés
5729
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
9 septembre 2021
1 993
10 févr. 2014 à 15:43
10 févr. 2014 à 15:43
Peut être ça ?
"La commande UNION de SQL permet de mettre bout-à-bout les résultats de plusieurs requêtes utilisant elles-même la commande SELECT"
"La commande UNION de SQL permet de mettre bout-à-bout les résultats de plusieurs requêtes utilisant elles-même la commande SELECT"
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
10 févr. 2014 à 16:34
10 févr. 2014 à 16:34
Bonjour,
UNION n'est pas la solution, car elle renvoie des lignes différentes.
Non, là il faut simplement jouer avec les SUM et des case...when.
Cela n'a rien de très compliqué, mais comme déjà dit, on n'est pas là pour faire vos devoirs à votre place :)
Xavier
UNION n'est pas la solution, car elle renvoie des lignes différentes.
Non, là il faut simplement jouer avec les SUM et des case...when.
Cela n'a rien de très compliqué, mais comme déjà dit, on n'est pas là pour faire vos devoirs à votre place :)
Xavier
pulls
Messages postés
136
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
13 septembre 2023
3
10 févr. 2014 à 16:26
10 févr. 2014 à 16:26
S'il vous plait , est ce qu'on peut faire un UNION sur la même table, est ce que un vendeur ne doit pas apparaitre 2 fois à la même date alors que je veux les grouper.
cordialement
cordialement
pulls
Messages postés
136
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
13 septembre 2023
3
10 févr. 2014 à 18:24
10 févr. 2014 à 18:24
J'ai essayé ceci:
Mais ça me renvoit une erreur de syntaxe: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as V1 when course between 500 and 999 then SUM(prod1)+SUM(prod2) a' at line 4
cordialement
select date,vendeur,prod3,
case
when (course between 1 and 499 ) or (course >1000)
then SUM(prod1)+SUM(prod2) as V1
when course between 500 and 999
then SUM(prod1)+SUM(prod2) as V2
FROM tab1 group by date,vendeur
Mais ça me renvoit une erreur de syntaxe: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as V1 when course between 500 and 999 then SUM(prod1)+SUM(prod2) a' at line 4
cordialement
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
Modifié par Reivax962 le 11/02/2014 à 08:59
Modifié par Reivax962 le 11/02/2014 à 08:59
Bonjour,
Tu n'es pas loin.
Essaie ça :
Tu n'es pas loin.
Essaie ça :
select date, vendeur, SUM(produit3) as produit3, SUM( case when (course between 1 and 499 ) or (course >1000) then produit1 + produit2 else 0 end) as V1, SUM( case when course between 500 and 999 then produit1 + produit2 else 0 end) as V2, SUM(produit1 + produit2 + produit3) as total FROM tab1 group by date,vendeur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pulls
Messages postés
136
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
13 septembre 2023
3
10 févr. 2014 à 19:42
10 févr. 2014 à 19:42
S'il vous plait, je crois que je suis à un pas d'avoir le bon résultat en procédant ainsi car je suis sur MYSQL:
Le champ V1 se calcule bien, mais le champ V2 affiche plutot 0, je ne comprends pas pourquoi.
Si vous avez une expérience dessus, aidez moi pour que je puisse avancer
Merci
select date,vendeur,prod3,
IF ((course < 499 ) or (course >1000),SUM(prod1)+SUM(prod2),0) as V1,
IF((course between 500 and 999),SUM(prod1)+SUM(prod2),0) as V2
from tab1 group by date,vendeur
Le champ V1 se calcule bien, mais le champ V2 affiche plutot 0, je ne comprends pas pourquoi.
Si vous avez une expérience dessus, aidez moi pour que je puisse avancer
Merci
pulls
Messages postés
136
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
13 septembre 2023
3
14 févr. 2014 à 10:37
14 févr. 2014 à 10:37
Merci Reivax962,
ça marche, je te remercie infiniment. S'il te plait, je ne comprends pas bien la position de SUM devant CASE, alors qu'après THEN , on doit faire une addition.
Cordialement
ça marche, je te remercie infiniment. S'il te plait, je ne comprends pas bien la position de SUM devant CASE, alors qu'après THEN , on doit faire une addition.
Cordialement
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
14 févr. 2014 à 11:15
14 févr. 2014 à 11:15
Pour bien comprendre, exécute cette requête sans les SUM ni le group by, et compare le résultat :
select date, vendeur, produit3, case when (course between 1 and 499 ) or (course >1000) then produit1 + produit2 else 0 end as V1, case when course between 500 and 999 then produit1 + produit2 else 0 end as V2, produit1 + produit2 + produit3 as total FROM tab1