PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 23/04/2010 15:10:05

loicDu28
Membre

suivi d'intervention pour des techniciens sélectionnés auparavent

Bonjour,

But du projet : Mon projet c'est de faire un outil permettant de suivre les interventions que réalise les techniciens sélectionnés auparavant.

Objectif de la requête : Afficher la liste des interventions prise en charge par les IPCA concerné par le suivi. Ces interventions sont validés par des hotliner si tout est OK(cette validation est enregistrée dans la base de données, lorsquelle est validée on ne l'affiche plus dans la liste). Ces interventions doivent être suivi la semaine après la sélection de l'IPCA mais également après la semaine si cette dernière (l'intervention) n'a pas été validé par le BOT.

Problème : Si cette intervention n'a pas été validé alors qu'on lance une autre sélection (c'est à dire à la fin de la semaine du suivi) le numéro d'intervention est enregistrée dans la même table que la validation (mais sans date de validation) et je voit pas comment faire pour afficher les interventions qui ont une date de validation vide, et d'afficher également les interventions des nouveaux techniciens sélectionnés et ne pas afficher celle qui ont une date de validation.

Table intervention :

CREATE TABLE intervention
(
  id_ca character varying(9) NOT NULL,  -- numéro intervention 
  int_refinst character varying(4), -- numéro ipca(tech)
  CONSTRAINT intervention_pkey PRIMARY KEY (id_ca)
)

Table histo_suivi_bot (table pour l'historisation des interventions surveillées) :

CREATE TABLE histo_suivi_bot
(
  hsb_inter character varying(9) NOT NULL,
  hsb_date_validation character varying(14),
  hsb_ipca character varying(4),
  hsb_tech integer,
  hsb_tech_bot integer,
  CONSTRAINT histo_suivi_bot_pkey PRIMARY KEY (hsb_inter)
)

Table ticket_enoff (table dans laquelle j'enregistre la liste des tchniciens(IPCA) qui sont sélectionnés) :

CREATE TABLE ticket_enoff
(
  teo_date character varying(12),
  teo_ipca character varying(4),
  teo_typo integer[]
)
WITH (OIDS=TRUE);
ALTER TABLE ticket_enoff OWNER TO postgres;

Donc j'ai essayer de faire ceci :

SELECT int_refinst AS ipca, int_ig, int_refinst_tech AS ipca_tech, id_ca, int_statut, histo_pec_dt AS dt_pec, 
int_date_rdv AS dt_planif, int_date_debut AS dt_cloture, teo_typo AS typologie
FROM intervention AS inter
JOIN ticket_enoff AS teo ON teo.teo_ipca = inter.int_refinst
JOIN histo_pec AS hpec ON hpec.histo_pec_id = inter.id_ca
WHERE to_date(histo_pec_dt, 'DD/MM/YYYY') BETWEEN '20091220' AND '20091226'
AND histo_pec_action = '1'
AND teo.teo_date = '20091220' 
AND (id_ca NOT IN (SELECT hsb_inter FROM histo_suivi_bot WHERE hsb_date_validation IS NOT NULL)
     AND id_ca IN (SELECT hsb_inter FROM histo_suivi_bot WHERE hsb_date_validation IS NULL)
)
ORDER BY int_refinst

En gros, dans l'exemple de la requête :
de la semaine du 20/12/2009 au 26/12/2009, j'ai 1 interventions à afficher(interventions de la nouvelle semaine donc des nouveaux techniciens sélectionnées) et j'ai 42 interventions de la semaine précédente qui sont dans la table 'histo_suivi_bot' sans date de validation donc je devrais obtenir 43 lignes mais avec ma requête, j'en obtiens aucune.

Comment puis-je faire??

Merci d'avance.

Hors ligne

#2 28/04/2010 16:06:43

loicDu28
Membre

Re : suivi d'intervention pour des techniciens sélectionnés auparavent

Bonjour,

Merci beaucoup pour votre aide.

En fait j'ai trouvé une autre solution qui fonctionne bien. En fait, j'ai ajouté un champ 'suivi_bot' dans ma table intervention et dés qu'une intervention est suivi je lui affecte '1' dans le champ 'suivi_bot' et pour l'affichage je fais appel aux interventions qui ont 1 dans le champ 'suivi_bot'.

En tout cas merci d'avoir pris de votre temps.

Cordialement.

Hors ligne

Pied de page des forums