Problème requetes sql

Résolu
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. Modérateur
    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. 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
    2. Modérateur
      @jaackiAh justement j'avais un doute sur les alias. Merci :-)
      0