SELECT sur une table relationelle
Bonjour,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| -- Script généré par WINDEV le 05/09/2021 12:30:34
-- Tables de l'analyse Gestionarticles.wda
-- pour SQL générique (ANSI 92)
-- Création de la table article
CREATE TABLE "article" (
"IDarticle" NUMERIC(19,0) PRIMARY KEY ,
"titre" VARCHAR(60) NOT NULL ,
"nompassage" VARCHAR(20) ,
"dateprevue" DATE ,
"artsigne" BIT ,
"page" SMALLINT );
CREATE INDEX "WDIDX_article_titre" ON "article" ("titre");
CREATE INDEX "WDIDX_article_nompassage" ON "article" ("nompassage");
CREATE INDEX "WDIDX_article_dateprevue" ON "article" ("dateprevue");
-- Création de la table utilisateur
CREATE TABLE "utilisateur" (
"IDutilisateur" NUMERIC(19,0) PRIMARY KEY ,
"user" VARCHAR(10) NOT NULL UNIQUE ,
"password" VARCHAR(12) NOT NULL ,
"name" VARCHAR(30) NOT NULL UNIQUE ,
"qualite" SMALLINT NOT NULL ,
"present" BIT NOT NULL );
CREATE INDEX "WDIDX_utilisateur_qualite" ON "utilisateur" ("qualite");
CREATE INDEX "WDIDX_utilisateur_present" ON "utilisateur" ("present");
-- Création de la table utilisateur_article
CREATE TABLE "utilisateur_article" (
"IDarticle" NUMERIC(19,0) NOT NULL ,
"IDutilisateur" NUMERIC(19,0) NOT NULL ,
"datemodif" TIMESTAMP NOT NULL ,
"typeintervention" SMALLINT NOT NULL );
CREATE INDEX "WDIDX_utilisateur_article_IDarticle" ON "utilisateur_article" ("IDarticle");
CREATE INDEX "WDIDX_utilisateur_article_IDutilisateur" ON "utilisateur_article" ("IDutilisateur");
CREATE INDEX "WDIDX_utilisateur_article_datemodif" ON "utilisateur_article" ("datemodif");
CREATE INDEX "WDIDX_utilisateur_article_typeintervention" ON "utilisateur_article" ("typeintervention");
CREATE INDEX "WDIDX_utilisateur_article_IDutilisateur_IDarticle1" ON "utilisateur_article" ("IDutilisateur","IDarticle");
-- Contraintes d'intégrité
ALTER TABLE "utilisateur_article" ADD FOREIGN KEY ("IDutilisateur") REFERENCES "utilisateur" ("IDutilisateur");
ALTER TABLE "utilisateur_article" ADD FOREIGN KEY ("IDarticle") REFERENCES "article" ("IDarticle"); |
Ceci est le code de création de mes tables HFSQL.
Je souhaiterais avoir une requête à lire dans une table de telle sort à ce que ça ne m'affiche que la dernière intervention sur chaque article.
La liste des utilisateurs est de la sorte.
IdUtilisateur |
user |
password |
name |
qualite |
present |
2 |
bertrand |
123 |
Bertrand Parrain |
1 |
1 |
3 |
Renard |
123 |
François Fox |
3 |
1 |
4 |
Park |
123 |
Anis Smith |
3 |
1 |
5 |
Mapping |
123 |
Louise Carte |
5 |
0 |
6 |
Capsys |
123 |
Arnaud Suisse |
4 |
1 |
Liste des articles
Idarticle |
titre |
nompassage |
dateprevue |
page |
artsigne |
1 |
lre titre |
le passage |
20210902 |
4 |
0 |
2 |
Autre titre |
autre pass |
20210902 |
24 |
0 |
La table utilisateur_article
IDarticle |
IDutilisateur |
datemodif |
typeintervention |
1 |
3 |
20210806000000000 |
1 |
1 |
2 |
20210806120000000 |
2 |
2 |
2 |
20210806110000000 |
1 |
A chaque création/modification d'un article, je remplis la table utilisateur_article de sorte à ce que IDarticle soit l'ID de l'article concerné, IDutilisateur l'ID de l'utilisateur qui a fait la création/modification, datemodif la date heure d'intervention et typeintervention 1 pour modification 2 pour modification...
Mon problème c'est d'obtenir une liste qui ne contienne que les articles avec uniquement la dernière intervention.
J'espère avoir été clair.
Merci de votre aide.