SQL - Fusion de 2 requètes :(

Bonjour,

J'aimerais fusionner ces 2 requètes:
select convert(varchar(10),Date,103) AS Date
from vignette
WHERE truc=1 and machin=0 
group by convert(varchar(10),Date,103)
ORDER BY convert(varchar(10),Date,103)

et
select count(*) as NBRE
from (
select id
from vignette
where truc=1 and machin=0 AND convert(varchar(10),Date,103)='REQUETE_DU_HAUT'
group by id) T


En fait j'aimerais mettre la 1ère requète dans le where de la 2ème requète.

Merci d'avance
Configuration: Windows XP
Firefox 3.5.6

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. C'est en fait très simple un select * from matable corresponds en réalité à
    select * from (select * from matable) matable. Toute table dans le from est elle meme une requete. donc ?

    select matable1.id, matable1.nom from matable1,(select matable2.id from matable2 where madate est comprise entre machin et bidul) matablevirtuelle
    where matable1.madate=matablevirtuelle.madate

    Et roule ma poule ! Un des très gros avantage par rapport à une jointure complexe, c'est que la requete est effectuée 1 fois et après ses enregistrement sont traité, alors qu'avec une jointure du genre "madate in (select...", ou autre, il y a autant de requête que de ligne de résultat.
    1. mais ca ne peux pas marcher ta requete impossible!!!

      select tes_champ ou champ_calculé from ta_table ca ta pas le choix!!!!!

      tu ne peux pas faire un from(select.....)
      1. ben non je ne peux pas .
        c'est cette requète qui me donne le nombre exacte:
        select count(*) as NBRE
        from (
        select id
        from vignette
        where truc=1 and machin=0
        group by id) T
        


        ou Sinon il faut que je puisse passer à cette requete la date en plus
        select count(*) as NBRE, convert(varchar(10),Date,103)
        from (
        select id
        from vignette
        where truc=1 and machin=0
        group by id) T
        


        Mais du coup la rqt ne reconnait pas le "convert(varchar(10),Date,103)"

        quelqu'un a-t-il une idée???
        1. Merci pour ta réponse..

          Je travaille en VB.NET, sous SQL SERVER.

          Je cherche à avoir un tableau avec 2 colonnes:
          DATE et NBRE
          Câd ça :
          select count(*) as NBRE
          from (
          select id
          from vignette
          where truc=1 and machin=0
          group by id) T
          

          qui retourne le nombre,
          en fonction de leur date d'insertion

          Par ex:

          DATE NBRE
          02/12/2009 5
          04/12/2009 1
          07/12/2009 17
          1. tu travail sous quoi?access?

            peut tu me decrire t tables champ ...

            ce que tu recherche
            1. Oui il m'embète aussi!!
              ça ne fonctionne pas.
              En fait ce que j'aimerais faire, c'est un tableau avec DATE et NBRE
              :S
              1. select count(*) as NBRE
                from vignette
                where truc=1 and machin=0 AND convert(varchar(10),Date,103)=(select convert(varchar(10),Date,103) AS Date
                from vignette
                WHERE truc=1 and machin=0
                group by convert(varchar(10),Date,103)
                ORDER BY convert(varchar(10),Date,103))

                group by id) T

                ce qui m'embete c le select id apres ton from!!!!!!!