Salut a tous,

Je suis actuellement bloque sur une requete.
Voici d'abord les 2 tables en question:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE tbl_epc
(
  fld_id integer NOT NULL,
  cal_status character varying(50) DEFAULT NULL::character varying,
  ...,
  CONSTRAINT tbl_epc_pkey PRIMARY KEY (fld_id)
)
 
CREATE TABLE tbl_epc_history
(
  fld_id integer NOT NULL,
  fld_epc_id integer,
  fld_event character varying(250) DEFAULT NULL::character varying,
  fld_date timestamp without time zone,
  fld_notes character varying(4000) DEFAULT NULL::character varying,
  CONSTRAINT tbl_epc_history_pkey PRIMARY KEY (fld_id)
)
Donc chaque element de tbl_epc peut avoir plusieurs elements de tbl_epc_history lies a lui via fld_epc_id.

La requete que je voudrais faire:
Pour chaque EPC dont cal_status = 'Closed' ET ayant un element de tbl_epc_history avec fld_event = 'Project Started' ET n'ayant pas d'element avec fld_event = 'Project Closed', je desire leur rajouter un element dans tbl_epc_history avec
fld_epc_id = celui de l'EPC concerne, fld_event = 'Project Closed' et fld_date = '30-11-2008'.

Voila la requete que j'ai commence mais qui ne fonctionne pas parce que j'arrive pas a filtrer sur l'EPC courrant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
INSERT INTO tbl_epc_history (fld_id,fld_epc_id, fld_event, fld_date)
SELECT (
	(SELECT 1+MAX(fld_id) FROM tbl_epc_history),
 
	(SELECT t2.fld_id FROM tbl_epc AS t2, tbl_epc_history AS t1
	WHERE t2.cal_status = 'Closed' AND t2.fld_id NOT IN (
			SELECT fld_epc_id FROM tbl_epc_history 
			WHERE fld_event = 'Project Closed')
		AND t2.fld_id IN (
			SELECT fld_epc_id FROM tbl_epc_history 
			WHERE fld_event = 'Project Started')
		AND t2.fld_id = t1.fld_epc_id),
	'Project Closed',
	'30-11-2008');
Faudrait que j'utilise des INNER JOIN mais j'ai vraiment du mal a m'y faire

Une idee?