OVH Cloud OVH Cloud

Problème pour formuler une requète

1 réponse
Avatar
TedIF
Bonjour,

Soit une table :

CREATE TABLE [PER_ROLE] (
[ID_ROLE] [int] IDENTITY (1, 1) NOT NULL ,
[ID_PERSONNE] [int] NOT NULL ,
[ID_PROJ] [int] NULL ,
[C_ROLE] [char] (2) COLLATE French_CI_AS NOT NULL ,
[REF_PRODUIT] [char] (12) COLLATE French_CI_AS NULL ,
CONSTRAINT [PK_PER_ROLE] PRIMARY KEY CLUSTERED
(
[ID_ROLE]
) WITH FILLFACTOR = 90 ON [PRIMARY] ,
CONSTRAINT [FK_PER_ROLE_CRE_PROJET] FOREIGN KEY
(
[ID_PROJ]
) REFERENCES [CRE_PROJET] (
[ID_PROJ]
),
CONSTRAINT [FK_PER_ROLE_INTERVIEN_PER_PERS] FOREIGN KEY
(
[ID_PERSONNE]
) REFERENCES [PER_PERSONNE] (
[ID_PERSONNE]
),
) ON [PRIMARY]

Comment formuler une requête pour extraire de cette table une ligne par
ID_PROJ non null ayant le code C_ROLE le plus petit.

Merci d'avance pour votre aide

1 réponse

Avatar
Steve Kass
select * from PER_ROLE P1
where not exists (
select * from PER_ROLE P2
where P2.ID_PROJ = P1.ID_PROJ
and P2.C_ROLE < P1.C_ROLE
)

ou

select * from PER_ROLE P1
where C_ROLE = (
select min(C_ROLE) from PER_ROLE P2
where P2.ID_PROJ = P1.ID_PROJ
)

Steve Kass
Drew University

"TedIF" wrote in message
news:e0Uol$
Bonjour,

Soit une table :

CREATE TABLE [PER_ROLE] (
[ID_ROLE] [int] IDENTITY (1, 1) NOT NULL ,
[ID_PERSONNE] [int] NOT NULL ,
[ID_PROJ] [int] NULL ,
[C_ROLE] [char] (2) COLLATE French_CI_AS NOT NULL ,
[REF_PRODUIT] [char] (12) COLLATE French_CI_AS NULL ,
CONSTRAINT [PK_PER_ROLE] PRIMARY KEY CLUSTERED
(
[ID_ROLE]
) WITH FILLFACTOR = 90 ON [PRIMARY] ,
CONSTRAINT [FK_PER_ROLE_CRE_PROJET] FOREIGN KEY
(
[ID_PROJ]
) REFERENCES [CRE_PROJET] (
[ID_PROJ]
),
CONSTRAINT [FK_PER_ROLE_INTERVIEN_PER_PERS] FOREIGN KEY
(
[ID_PERSONNE]
) REFERENCES [PER_PERSONNE] (
[ID_PERSONNE]
),
) ON [PRIMARY]

Comment formuler une requête pour extraire de cette table une ligne par
ID_PROJ non null ayant le code C_ROLE le plus petit.

Merci d'avance pour votre aide