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 Re : Général » x en fonction <= a la date » 12/01/2018 17:24:25

voici le code et merci :
SELECT
to_char((table2.date) ::timestamp with time zone, 'MM/YYYY' ::text) AS date,
table2.user,
min(table2.depense),
min(table1.budget)
FROM
table1
INNER JOIN
table2 ON public.table1.user = table2.user
and to_char((table2.date) ::timestamp with time zone, 'MM/YYYY' ::text) = to_char((public.table1.date) ::timestamp with time zone, 'MM/YYYY' ::text)
GROUP BY
to_char((table2.date) ::timestamp with time zone, 'MM/YYYY' ::text),
table2.user

#2 Général » x en fonction <= a la date » 10/01/2018 17:11:36

reimic5
Réponses : 3

Bonjour,

Merci beaucoup pour votre aide.
J'ai deux table :
La table table1 avec 3 colonnes user, date, budget.

-- Table1 --
U  |     date     |  Budget
1  | 01/01/17  |  100
2  | 01/01/17  |  110
3  | 01/01/17  |  101
2  | 15/02/17  |  111
2  | 03/03/17  |  109
3  | 07/06/17  |  102

La table2 avec trois colonnes user, date depense

-- Table2 --
U  |     date    |  depense
1  | 04/01/17 |  100
2  | 06/01/17 |  150
1  | 24/02/17 |  130
2  | 20/03/17 |  110
1  | 14/07/17 |  170
3  | 16/08/17 |  180

je souhaiterai avoir la table 2 avec une colonne du budget aloue (< ou = a la date de depense) en fonction des users.


resultat souhaite:

-- resultat --
U  |  date  | depense | budget
1  | 01/17 |    100     | 100
2  | 01/17 |    150     | 110
1  | 02/17 |    130     | 100
2  | 03/17 |    110     | 109
1  | 07/17 |    170     | 100
3  | 08/17 |    180     | 102

je n'y arrive pas, ma formule ne fonctionne pas:

SELECT
  to_char((table2.date) ::timestamp with time zone, 'MM/YYYY' ::text) AS date,
  table2.depense,
  table2.user,
  table1.budget
FROM
  table1
  INNER JOIN table2 ON (public.table1.user = table2.user)
GROUP BY
  to_char((table2.date) ::timestamp with time zone, 'MM/YYYY' ::text),
  table2.user,
  table1.budget

#3 Re : Général » max (date) » 08/01/2018 14:49:48

jmarsac a écrit :

Bonsoir,

SELECT * FROM carmanagement AS t1 WHERE "date" = (SELECT MAX("date") FROM carmanagement AS t2 WHERE t2.u = t1.u GROUP BY u )


ca fonctionne ! un grand merci.
;-)))

#4 Général » max (date) » 05/01/2018 18:23:20

reimic5
Réponses : 2

Bonjour,

Merci beaucoup pour votre aide.
J'ai une table table1 avec 3 colonnes user, date, budget.
je souhaiterai avoir le budget des user a la date plus recente.

ma formule mais ne fonctionne pas:

SELECT
"public".carmanagement.u,
"public".carmanagement.budget,
Max("public".carmanagement."date")
FROM
"public".carmanagement
GROUP BY
"public".carmanagement.u


-- Table1 --
U  |     date     |  Budget
1  | 01/01/17  |  100
2  | 01/01/17  |  110
3  | 01/01/17  |  101
2  | 15/02/17  |  111
2  | 03/03/17  |  109
3  | 07/06/17  |  102


resultat souhaite:

U  |     date     |  Budget
1  | 01/01/17  |  100
2  | 03/03/17  |  109
3  | 07/06/17  |  102

#5 Re : Général » trigger - update colonne par rapport à une autre table » 23/11/2016 12:08:33

voici comment j'ai fait, si ca peut servir a une autre personne.


--trigger tr_insert_taux
CREATE TRIGGER tr_insert_taux
  BEFORE INSERT
  ON public.table1
  FOR EACH ROW
  EXECUTE PROCEDURE fc_insert_taux();

--fonction fc_insert_taux
begin
NEW.taux := (SELECT taux FROM table2 WHERE id = NEW.id_usager);
RETURN NEW;
end;

merci.

#6 Re : Général » trigger - update colonne par rapport à une autre table » 22/11/2016 12:58:44

https://s16.postimg.org/4v51a6ez9/Capture5.jpg

---
CREATE TRIGGER tr_insert_taux
    after INSERT ON table1
    FOR EACH ROW
    EXECUTE PROCEDURE fc_insert_taux();
---
create or replace function fc_insert_taux() RETURNS text AS $$
begin
update table1
set table1.taux=table2.taux
where table2.id=table1.id_usager
end;

#8 Re : Général » trigger - update colonne par rapport à une autre table » 14/11/2016 22:23:59

je suis en 9.5. je vais voir cela et merci pour votre reponse.

#10 Re : Général » trigger - update colonne par rapport à une autre table » 14/11/2016 21:50:41

dans la table1, c'est l'encodage des usagers avec le temps d'intervention avec une colonne date que je n'ai pas ajoute ici. une fois le taux fixe dans la ligne, il ne devra plus etre modifie.
dans la table2, c'est une table des usagers avec leur taux horaire en sachant que se taux pourra etre change a tout moment par le RH.

merci pour votre aide.

#11 Général » trigger - update colonne par rapport à une autre table » 14/11/2016 20:49:50

reimic5
Réponses : 11

Bonjour,

J'ai deux tables (Table1 et Table2). Je souhaiterais que la colonne 'taux' de la table1 s'update automatique quand la ligne est creer. ceci par rapport a la table2 de la colonne 'taux' en fonction de la colonne 'id_usager'.
Les taux de la Table2 peuvent changer.
Merci pour votre aide.

Table1 - encodages
id    id_usager    temps    taux
111    5            15            105
112    2            20            102
113    4            21   
114    1            36   
115    5            45   

Table2 - usager
id    nom    taux
1    toto    11
2    titi    102
3    tata    130
4    tutu    14
5    tete    105

Pied de page des forums

Propulsé par FluxBB