Requete sur un AGREGAT

Résolu
cyberice67 Messages postés 88 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 7 novembre 2016 - 26 mai 2005 à 12:42
elias_elias Messages postés 3 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 26 mai 2005 - 26 mai 2005 à 16:41
Bonjour,



Voilà j'ai un big problème sur une requete SQL.

J'ai une base de donnée SQL Server est j'essaie de créer une requete
portant sur un agregat. Voici le code SQL générant la base :









if exists (select * from dbo.sysobjects where id = object_id (N'[dbo].[Peche]') and OBJECTPROPERTY(id,N'isusertable')= 1)

Drop table [dbo].[Peche]

go





if exists (select * from dbo.sysobjects where id = object_id (N'[dbo].[Poste]') and OBJECTPROPERTY(id,N'isusertable')= 1)

Drop table [dbo].[Poste]

go



if exists (select * from dbo.sysobjects where id = object_id (N'[dbo].[Personne]') and OBJECTPROPERTY(id,N'isusertable')= 1)

Drop table [dbo].[Personne]

go



if exists (select * from dbo.sysobjects where id = object_id (N'[dbo].[Datee]') and OBJECTPROPERTY(id,N'isusertable')= 1)

Drop table [dbo].[Datee]

go





create table Personne

( IdPers int not null,

NomPers varchar(20) null,

PrenomPers Varchar(20) null,

AdressePers Varchar(50) null,

VillePers Varchar(20) null,

TelPers varchar(10) null,

constraint PK_IdPers primary key(IdPers)

)



create table Datee

( DatePeche datetime not null

constraint PK_DatePeche primary key(DatePeche)

)







create table Poste

( NumPoste Varchar(2) not null,

LibPoste varchar(20) null,

constraint PK_NumPoste primary key(NumPoste)



)







create table Peche

( DatePeche datetime not null,

IdPers int not null,

NumPoste Varchar(2)null



constraint PK_Peche primary key(DatePeche,IdPers),

constraint FK_DatePeche foreign key(DatePeche)

references datee(DatePeche),

constraint FK_IdPers foreign key(IdPers)

references Personne(IdPers),

constraint FK_NumPoste foreign key(NumPoste)

references poste(NumPoste)



)





insert into Personne values ('1','SCHOEFFTER','Christophe','7 Rue des Pecheurs','SOUFFLENHEIM','0666289269')

insert into Personne values ('2','GRAFF','Laure','5 Rue des Menuisiers','HAGUENAU','0675463894')

insert into Personne values ('3','HUSSER','Francois','14 Rue du Chêne','STRASBOURG','0674563892')

insert into Personne values ('4','ERNEWEIN','Christian','225 Rue du Hêtre','WISSEMBOURG','0673458976')

insert into Personne values ('5','BACHELET','Pierre','15 Rue du Corail','SELESTAT','0623749167')

insert into Personne values ('6','SALVADOR','Henry','18 Rue St Honoré','GRESSWILLER','0645983726')

insert into Personne values ('7','SALVADOR','Henry','18 Rue St Honoré','GRESSWILLER','0655667455')

insert into Personne values ('8','SALVADOR','Henry','18 Rue St Honoré','GRESSWILLER','0645362782')

insert into Personne values ('9','SALVADOR','Henry','18 Rue St Honoré','GRESSWILLER','0674839767')

insert into Personne values ('10','SALVADOR','Henry','18 Rue St Honoré','GRESSWILLER','0688798890')

insert into Personne values ('11','SALVADOR','Henry','18 Rue St Honoré','GRESSWILLER','0634526718')

insert into Datee values ('12/01/2005')

insert into Datee values ('14/01/2005')

insert into Datee values ('04/01/2005')

insert into Poste values ('A1','Pont et chaussés')

insert into Poste values ('B2','Petit haut fond')

insert into Poste values ('C3','Haud fond Sessenheim')

insert into Poste values ('D4','Arbre Sessenheim')

insert into Peche values ('12/01/2005','1','A1')















alors ce que j'essaie d'obtenir c'est (par exemple) :



A1 Pierre Mathieu
12 rue de fleurs 12/01/2005

B2 null
null null

12/01/2005

C3 Simon
Mathieu 14 rue du
hetre 12/01/2005

D4
null null

null
12/01/2005





Comme vous le voyez le resultat correspont à :

Afficher TOUT les postes et, s'il elle existe, la personne qui l'occupe, pour la journée du 12/01/2005





Bon planchage



MERCI A CEUX QUI CHERCHERONT !!!!



Cyberice

3 réponses

elias_elias Messages postés 3 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 26 mai 2005
26 mai 2005 à 14:08
a partir des données inséré , tu ne peux pas obtenir les résultat attendu
regarde bien ce que tu insert , est ce que veux avoir ?????
par contre je te propose cette requette

select * -- tu précise les champs que tu veux avoir
from poste Ps
left join Peche Pcon ps.NumPostepc.NumPoste and DatePeche ' votre date'
left join Personne Pr
on pc.IdPers = pr.IdPers

je ne l'ai pas tester car ca me prend beaucoup de temps , mais normalement , elle marche ou au mons l'idée est là.

bon courage
3
cyberice67 Messages postés 88 Date d'inscription samedi 6 décembre 2003 Statut Membre Dernière intervention 7 novembre 2016
26 mai 2005 à 14:37
Alors là chapeau Elias, tu me scie !!



ta requete marche super, j'vais enfin pouvoir continuer mon AP !!

Bravo !!



solution :



select datepeche,personne.idpers,poste.numposte, nompers

from poste

left join Peche

on poste.NumPoste= peche.NumPoste

and DatePeche = '12/01/2005'

left join Personne

on peche.IdPers = personne.IdPers






Cyberice
0
elias_elias Messages postés 3 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 26 mai 2005
26 mai 2005 à 16:41
c'est tant mieux
Cyberice
0
Rejoignez-nous