Problème requetes sql

Résolu
jaacki Messages postés 31 Statut Membre -  
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je développe une base de données mysql et je bug un peu sur une requête...
En fait cette requête est composée de deux requêtes qui me ramènent un nombre chacune.

Voici les deux requêtes en question :

SELECT count( * ) AS nbGoodProducts
	FROM (
		SELECT DISTINCT id_c
		FROM uut, component_uut
		WHERE `result` =1
		AND uut.num_bench = component_uut.num_bench
		AND uut.id_b = component_uut.id_b
		AND uut.id_f = component_uut.id_f
		AND uut.uut_date = component_uut.uut_date
		AND uut.uut_date
		BETWEEN ADDDATE( '2007-10-19', INTERVAL 1 *0
		DAY )
		AND ADDDATE( '2007-10-19', INTERVAL 1 * ( 0 +1 )
		DAY )
		GROUP BY uut.uut_date 
	) AnbGoodProducts


SELECT count( * ) AS nbProducts
	FROM (
		SELECT DISTINCT id_c
		FROM uut, component_uut
		WHERE uut.num_bench = component_uut.num_bench
		AND uut.id_b = component_uut.id_b
		AND uut.id_f = component_uut.id_f
		AND uut.uut_date = component_uut.uut_date
		AND uut.uut_date
		BETWEEN ADDDATE( '2007-10-19', INTERVAL 1 *0
		DAY )
		AND ADDDATE( '2007-10-19', INTERVAL 1 * ( 0 +1 )
		DAY )
		GROUP BY uut.uut_date 
	) AnbProducts


Comme vous le voyez, ces deux requêtes me retourne deux count, jusque la pas de problème !
Je souhaiterais tout simplement "joindre" ces requêtes afin d'obtenir un résultat du style :

  nbGoodProducts |     nbProducts
-----------------|---------------------
       265       |      350


Ca doit quand même pas être trop compliqué à faire non qu'est-ce que vous en dites ??
Ben je n'y parviens pas !!

Merci à ceux qui pourront m'aider.

A+
Configuration: Windows XP
Firefox 3.0

1 réponse

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Salut,

    Comme ceci :-)

    SELECT nbGoodProducts, nbProducts FROM (
    
        SELECT count( * ) AS nbGoodProducts
    	FROM (
    		SELECT DISTINCT id_c
    		FROM uut, component_uut
    		WHERE `result` =1
    		AND uut.num_bench = component_uut.num_bench
    		AND uut.id_b = component_uut.id_b
    		AND uut.id_f = component_uut.id_f
    		AND uut.uut_date = component_uut.uut_date
    		AND uut.uut_date
    		BETWEEN ADDDATE( '2007-10-19', INTERVAL 1 *0
    		DAY )
    		AND ADDDATE( '2007-10-19', INTERVAL 1 * ( 0 +1 )
    		DAY )
    		GROUP BY uut.uut_date 
    	) AnbGoodProducts
        ),
    
        (SELECT count( * ) AS nbProducts
    	FROM (
    		SELECT DISTINCT id_c
    		FROM uut, component_uut
    		WHERE uut.num_bench = component_uut.num_bench
    		AND uut.id_b = component_uut.id_b
    		AND uut.id_f = component_uut.id_f
    		AND uut.uut_date = component_uut.uut_date
    		AND uut.uut_date
    		BETWEEN ADDDATE( '2007-10-19', INTERVAL 1 *0
    		DAY )
    		AND ADDDATE( '2007-10-19', INTERVAL 1 * ( 0 +1 )
    		DAY )
    		GROUP BY uut.uut_date 
    	) AnbProducts
         );
    0
    1. jaacki Messages postés 31 Statut Membre
       
      juste une virgule... je me doutais que c'était un truc tout con mais là... pourtant j'ai cherché un moment ^^

      Merci beaucoup en tous cas. Par contre il faut ajouter des alias pour ne pas que mysql plante, je remet la requête au cas ou quelqu'un aurait le même problème :

      SELECT nbGoodProducts, nbProducts
      FROM (
      	SELECT count( * ) AS nbGoodProducts
      	FROM (
      		SELECT DISTINCT id_c
      		FROM uut, component_uut
      		WHERE `result` =1
      		AND uut.num_bench = component_uut.num_bench
      		AND uut.id_b = component_uut.id_b
      		AND uut.id_f = component_uut.id_f
      		AND uut.uut_date = component_uut.uut_date
      		AND uut.uut_date
      		BETWEEN ADDDATE( '2007-10-19', INTERVAL 1 *0
      		DAY )
      		AND ADDDATE( '2007-10-19', INTERVAL 1 * ( 0 +1 )
      		DAY )
      		GROUP BY uut.uut_date
      	)AnbGoodProducts
      )table1, (
      	SELECT count( * ) AS nbProducts
      	FROM (
      		SELECT DISTINCT id_c
      		FROM uut, component_uut
      		WHERE uut.num_bench = component_uut.num_bench
      		AND uut.id_b = component_uut.id_b
      		AND uut.id_f = component_uut.id_f
      		AND uut.uut_date = component_uut.uut_date
      		AND uut.uut_date
      		BETWEEN ADDDATE( '2007-10-19', INTERVAL 1 *0
      		DAY )
      		AND ADDDATE( '2007-10-19', INTERVAL 1 * ( 0 +1 )
      		DAY )
      		GROUP BY uut.uut_date
      	)AnbProducts
      )table2 



      Merci kilian !
      A ++
      0
      1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > jaacki Messages postés 31 Statut Membre
         
        Ah justement j'avais un doute sur les alias. Merci :-)
        0