Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1737 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requete SQL double résultat

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requete SQL double résultat

n°2143445
iparmenion​i
Posté le 23-05-2012 à 17:20:43  profilanswer
 

Salut, j’essaie d'écrire une requete qui permet de récupérer 2 résultats différent sur le même champs. Voila ma requete:
 

Code :
  1. SELECT count(cs.num_cheque) AS nbr_cheque
  2.          
  3.        FROM cheque_sport AS cs
  4.        WHERE cs.is_utilise = -1
  5.        AND date_facturation > DATE_ADD(now(), Interval -2 year)
  6.        GROUP BY YEAR(date_facturation), MONTH(date_facturation)
  7.        ORDER BY YEAR(date_facturation);


 
je voudrais avoir en même temps le résultat de la requete SELECT count(cs.num_cheque) AS cheque_vendu FROM cheque_sport AS cs WHERE cs.is_utilise = 0
 
C'est possible ou je dois obligatoirement faire 2 requetes?
 
merci
       

mood
Publicité
Posté le 23-05-2012 à 17:20:43  profilanswer
 

n°2143448
rufo
Pas me confondre avec Lycos!
Posté le 23-05-2012 à 17:29:40  profilanswer
 

En une requête, ça se fait avec un UNION.
 
EDIT : après, suivant la consolidation que tu veux dans nbr_cheque, tu peux aussi faire dans le WHERE, un WHERE cs.is_utilise IN (0, -1) AND ...


Message édité par rufo le 23-05-2012 à 17:31:19

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2143505
iparmenion​i
Posté le 24-05-2012 à 09:37:59  profilanswer
 

salut j'ai essayé avec union mais j'ai une erreur sql:
 

Code :
  1. SELECT count(cs.num_cheque) AS nbr_cheque, cs.montant_cheque, YEAR(date_facturation) AS annee, MONTH(date_facturation) AS mois  , SUM(CASE WHEN id_cheque_sport_statut = 2 THEN 1 ELSE 0 END ) as nb_vendu
  2.          
  3.        FROM cheque_sport AS cs
  4.        WHERE cs.is_utilise = -1
  5.         AND date_facturation > DATE_ADD(now(), Interval -2 year)
  6.     UNION
  7. SELECT count(cs.num_cheque) AS cheque_vendu, cs.montant_cheque, YEAR(date_facturation) AS annee, MONTH(date_facturation) AS mois  , SUM(CASE WHEN id_cheque_sport_statut = 2 THEN 1 ELSE 0 END ) as nb_vendu
  8.                                         FROM cheque_sport AS cs
  9.                                         WHERE date_facturation > DATE_ADD(now(), Interval -2 year)
  10.                                         GROUP BY YEAR(date_facturation), MONTH(date_facturation)
  11.                                         ORDER BY YEAR(date_facturation);


 
Elle fonctionne sans le group et le orderby mais pas avec. Comment faire? merci

n°2143506
rufo
Pas me confondre avec Lycos!
Posté le 24-05-2012 à 09:45:31  profilanswer
 

Il me semble que le select de chaque union doit avoir les mêmes champs. Et le group by je l'aurais fait sur chaque requête...


Message édité par rufo le 24-05-2012 à 09:46:54

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2143509
iparmenion​i
Posté le 24-05-2012 à 09:48:19  profilanswer
 

tu veux dire que que meme l'alias doit etre identique?  
Comment j'appelle le resultat de ma seconde requete si c'est le meme champ?

n°2143521
rufo
Pas me confondre avec Lycos!
Posté le 24-05-2012 à 10:54:35  profilanswer
 

http://dev.mysql.com/doc/refman/5.0/fr/union.html
 
En fait, les noms des colonnes peuvent être de noms différents mais doivent être du même type et de toute manière, c'est le nom des colonnes du premier select qui vont être utilisé pour le retour du résultat. Pour différencier les résultats, tu peux rajouter un colonne dans chaque select où tu metx une constante, genre "1" pour le premier select et "2" pour le second ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requete SQL double résultat

 

Sujets relatifs
Requete insertionDans mon cas : SQL ou FTP ?
Appel aux dieux du SQL, à vos claviers ! ( optimisation requête... )Moteur de recherche en SQL server 2008
Problème requête HTTP[Resolu] Aide Requête
Resource id2 : utiliser ce résultat comme variableRequête selon date de chaque enregistrement
APPLICATION PHP/SQL 
Plus de sujets relatifs à : Requete SQL double résultat


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR