Requete Access
cindy_misa Messages postés 148 Statut Membre -
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
- 1
- 2
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.
-
select *
from asset_pc
where any
(select service. centrecout
from centrecout
where service.centrecout = "alpha");
essaye ca mais jsuis pas tres doué en sql^^ -
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 !! -
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 -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
mais je veux comprendre la requette et le shema de BD , est ce que tu peux m'expliquer cythonas ??
-
alors la jointure est dans le champ "service" ,n'est ce pas ?
-
a ouais la sa change tous!! la jointure est bien dans le service
-
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 -
-
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? -
bon ba ta plus qu'a tester la requette et tu nous dit si sa marche!!
-
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 . -
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 -
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 ; -
hhhhhhhhhh , c'est pas grave cythonas .
regarde la requette que j'ai proposé , dis moi si t'est pas d'accord -
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??
-
-
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
-
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
-
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