Requete Access

Bonjour à tous ,

Voila ce que je cherche à faire :
J'ai deux tables :
 - CentreCout
      Service (Alpha)
       CostCenter (Num)


 - Asset_Pc
       Champs X , Y , Z
        CostCenter (num)


Mon souhait serai d'avoir une requete qui affiche tout les champs de Asset_Pc avec comme CostCenter la valeur Alpha (issue de CentreCout ) 

Un peu de cette manière :

SELECT  Costcenter.cost_center, Asset_Pc.User,  Asset_Pc.Asset_ID
FROM Asset_Pc, Costcenter
Where Asset_Pc.Costcenter = Costcenter.Service;



Je ne sais pas comment faire en Access (SQL)

Merci pour votre aide
Configuration: Windows XP
Firefox 2.0.0.12

35 réponses

Résumé de la discussion

Plusieurs échanges portaient sur la création d'une requête SQL Access permettant d'afficher tous les champs de Asset_Pc avec le CostCenter défini sur Alpha à partir des tables CentreCout et Asset_Pc. La solution retenue privilégie la jointure interne entre Asset_Pc et Costcenter, par exemple Asset_Pc inner join Costcenter on Asset_Pc.service = Costcenter.service, afin d'obtenir les valeurs associées du Costcenter pour chaque enregistrement. D'autres échanges notent que certaines requêtes ne retournent aucun résultat et que la jointure se fait bien sur le champ service entre Asset_Pc et Costcenter, avec des vérifications suggérées pour tester en live.

Bobot (l’IA à votre service)
  1. select *
    from asset_pc
    where any
    (select service. centrecout
    from centrecout
    where service.centrecout = "alpha");

    essaye ca mais jsuis pas tres doué en sql^^
    1. jtexplique ma requette enfin je vais esayer^^ deja faut rejouter la jointure de lotre post ^^

      en gros sa donne:
      j'affiche tous les champs de asset_pc où le service.centrecout est egale a alpha

      le any sert a rien dsl ^^
  2. Je veux t'aider mais j'ai des questions :
    est ce que les champs x,y,z sont les champs de asset_pc ?? et quel est le type de ces champs ?
    - Asset_Pc
    Champs X , Y , Z
    CostCenter (num)

    costcenter est une clé etrangère ou quoi ?
    et explique la requette un peu , parce que je n'ai rien compri !!
    1. arf j'ai oublié la jointure ^^
      dans le where rajoute CostCenter .asset_pc = CostCenter .CentreCout
      si comme l'a fait remarquer cindy les champs sont bien egaux
      1. Lol désolé donc je m'explique un peu mieux enfin je vais essayer :

        Jeux d'enregistrement :

        Asset_PC :

        ____________________
        ID | Name | Service
        ____________________
        1 | Bibi | Informatique
        ____________________
        (Informatique est le Service)

        Table CostCenter :
        _____________________
        Costcenter | Service
        ______________________
        5102 | Informatique

        Ce que je souhaite :
        ResultQuery :
        ____________________
        ID | Name | Service
        ____________________
        1 | Bibi | 5102

        J'espère que c'est plus compréhensible
        1. mais je veux comprendre la requette et le shema de BD , est ce que tu peux m'expliquer cythonas ??
          1. Ce sont deux tables distinctes donc pas de jointure ( a la base ) il faut faire la jointure je pense
            Comprendre la requête :
            En français :
            Je veux que la requête me retourne 3 Champs :
            Asset_PC.ID, Asset_PC.Name, Costcenter.costcenter mais je ne connai pas bien la syntaxe
            1. select *
              from asset_pc
              where service .asset_pc = service .CentreCout
              (select service. centrecout
              from centrecout
              where service.centrecout = "alpha");

              sa serai plus sa alors!! t daccord cindy?
              1. non , dsl , je ne suis pas d'accord !!
                je ne comprend pas pourquoi tu met : ="alpha"
                alpha ,si j'ai bien compris c'est le type du champ : alphabetique .
                1. Heu oui en effet alpha pour alphabétique
              2. oui exact c'est pasque j'ai fait copier/coller de celle d'avant^^ heureusement que tu ai là!!! mais il ma enbrouiller c pas du tous les meme truc...entre les 2 versions^^

                a la place du alpha tu met informatique
                1. didoch, tu dois créer une jointure entre les deux table , et ensuite tu execute cete requette :
                  select Asset_PC.ID, Asset_PC.Name, Costcenter.costcenter
                  from Asset_PC inner join Costcenter on Asset_PC.service = Costcente.service ;
                  1. hhhhhhhhhh , c'est pas grave cythonas .
                    regarde la requette que j'ai proposé , dis moi si t'est pas d'accord
                    1. c'est pas du sql sa!! s'il tape sa en sql il va avoir une tonne d'erreur^^ t sur que tu t'es pas planter quelque part??
                      1. dans la requette que je t'ai ecrit , il va afficher seulement les enregistrements dont les champs concernés par la jointure sont égaux , ça veux dire ,les costcenter ou le nom du service = à le nom du service de la table costcenter
                        1. oui je sais sa, mais c'est pas des synthexe sql si?? moi sa fait 2 ans que j'en fai et ba les prof nous on pas apris tes syntaxe bizarre... lol
                          1. j'en suis sur , c'est du sql , t'as jamais vu inner join ????!!!!!!!
                            bon voicii la requete :
                            select Asset_PC.ID, Asset_PC.Name, Costcenter.costcenter
                            from Asset_PC inner join Costcenter on Asset_PC.service = Costcente.service ;

                            et dautre façon :
                            select Asset_PC.ID, Asset_PC.Name, Costcenter.costcenter
                            from Asset_PC , Costcenter
                            where Asset_PC.service = Costcente.service ;
                            • 1
                            • 2