Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#26 Re : Général » Facture avec postgreSQL » 17/06/2010 21:50:21
d'accord... J'avais besoin que cela soit présenté ainsi.
C'est juste un gain en rapidité.
J'avais vu déjà le lien. Mais honnêtement, il y a tellement de types de triggers qu'il y a de quoi se perdre.
J'arrête ici mes questionnements mais recommence mes remerciements.
A bientôt Marc et bonne continuation jusque là,
LeHibou
#27 Re : Général » Facture avec postgreSQL » 17/06/2010 20:18:25
Pas du tout!!
J'ai modifié le code pour vraiment le personnaliser. C'est bon, ça y est ça marche.
Par contre, j'ai fait des recherches sur Tg_op. Je n'arrive pas à saisir son fonctionnement. La page de PostgreSQL n'est pas claire à ce sujet. J'ai cherché mais ne suis tombé que sur des posts qui ont des problèmes avec mais pas d'explication particulière.
Je ne veux pas abuser de votre générosité Marc, vous m'avez sorti d'un sacré pétrin.
En tout cas voilà un merci sincère...
#28 Re : Général » Facture avec postgreSQL » 17/06/2010 19:55:02
Merci Marc,
J'ai tenté, j'ai échoué.
Le problème, c'est je tente de personnaliser le code suivant la structure schéma.table ou table.colonne mais je m'y perd dans la dénomination -identique- du nom de la table et du nom de la colonne "somme".
C'est à dire que je tente de comprendre mais ne suis pas sûr de ce à quoi fait référence somme dans un cas et somme dans l'autre.
J'attends vos précisions? merci d'avance en tout cas, je n'aurais jamais trouvé ce code.
#29 Re : Général » Facture avec postgreSQL » 17/06/2010 17:07:27
Tout à fait!
#30 Re : Général » Facture avec postgreSQL » 17/06/2010 16:49:36
Bien sûr, au temps pour moi, je me suis mal exprimé.
Voici le schéma ci dessous qui représente la situation:
Table 1
Id Produit
Prix unitaire
Quantité
Remise
Prix net HT
Taux Tva
Tva totaleLa table 2, quant à elle, permet de calculer le total à payer.
Total HT
Total TTCBien sûr, la présentation, ni toutes les fonctionnalités ne sont pas là mais au moins, c'est plus simple.
J'ai été piégé car je ne peux pas mettre de trigger dans la même table. en effet, il ne me permet d'avoir que les résultats sur la ligne (à mon niveau de connaissance!).
Il faudrait que je puisse avoir les totaux pour préparer mes facturations. Sachant que ce que j'attends de postgresql, ce ne sont que les calculs, la présentation, je la fais dans un formulaire OOo Base.
Ce que je veux est possible ou pas? Sinon je passe sous OOo Calc pour mes factures et serai obligé de maintenir à jour ma base manuellement... Pas top.
#31 Général » Facture avec postgreSQL » 17/06/2010 16:07:29
- LeHibou
- Réponses : 10
PostgreSQL 8.4 - Debian - OOo Base 3 - PgAdmin 3
Bonjour à tous,
Je développe ma BDD pour ma société et actuellement j'en suis à la facturaton.
Actuellement, elle compte à peu près 12-13 tables différentes (fournisseurs, stocks...).
Mon ennui actuellement, c'est que j'ai besoin de réaliser les champs pour la facturation.
Pour la présentation j'ai OOo Base. Je les fais déjà fonctionner ensemble, tout va bien. Je ne veux pas de log externe (FactOoor..).
J'ai reproduit ci-dessous un exemple de ce que je veux (attention, cette table ne comporte qu'un champ mais j'ai besoin de la logique):
Table 1
-- Table: "Calculs"."Champs"
-- DROP TABLE "Calculs"."Champs";
CREATE TABLE "Calculs"."Champs"
(
"Champ 1" numeric,
"Id_Opération" integer NOT NULL,
CONSTRAINT "Champs_pkey" PRIMARY KEY ("Id_Opération")
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Calculs"."Champs" OWNER TO postgres;Puis la table de résultat:
-- Table: "Calculs"."Résultat"
-- DROP TABLE "Calculs"."Résultat";
CREATE TABLE "Calculs"."Résultat"
(
resultat numeric
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Calculs"."Résultat" OWNER TO postgres;Ce que je souhaite:
Que la table Résultat calcule toutes les lignes du champs 1. Résultat correspond en vrai au Total à payer.
Pourtant je parviens à effectuer des triggers mais que sur une ligne.
Sur plusieurs lignes voire plusieurs tables, je suis perdu.
Mais j'ai envie d'apprendre.
Pouvez-vous m'aider, svp?
LeHibou
#32 Re : Général » [Débutant] Trigger/Calcul » 28/05/2010 14:07:41
Super,
J'ai pas mal de boulot avec mon entreprise, mais en tout cas, si je peux aider pour les traductions, sachez que je suis là.
Bien sûr, je ne peux pas m'y consacrer à plein temps mais j'existe.
A bientôt,
LeHibou2
#33 Re : Général » [Débutant] Trigger/Calcul » 27/05/2010 18:52:49
AAAAAAAHHHHHHH!!!!!
Parfois je m'étonne... comment n'ai-je pas… Bref, Merci beaucoup Gleu.
Au fait, j'ai vu sur votre blog que vous avez eu de la promotion au sein de cette grande communauté qu'est PostreSQL.
Vous nous tiendrez au courant de quand sortira la prochaine version de postgres et pgAdmin?
Merci à vous en tous les cas, vous venez de me retirer une belle épine du pied.
A bientôt,
LeHibou
#34 Re : Général » [Débutant] Trigger/Calcul » 27/05/2010 15:42:26
Gleu,
J'ai vraiment essayé, même en suivant le lien. Il y a un binz:
-- Function: test."Trigg"()
-- DROP FUNCTION test."Trigg"();
CREATE OR REPLACE FUNCTION test."Trigg"()
RETURNS trigger AS
$BODY$BEGIN
NEW.total := SUM(toto.entree - toto.sortie);
RETURN NEW;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION test."Trigg"() OWNER TO postgres;Le message d'erreur est le suivant: "error missing FROM-clause entry for table "toto"".
C'est un peu usant… Dites, qu'est-ce qui ne va pas précisément dans mon code? je tourne en rond en essayant plusieurs possibilités mais là…
[EDIT] j'ai une piste: c'est la somme qui déconne. Ce code:
-- Function: test."Trigg"()
-- DROP FUNCTION test."Trigg"();
CREATE OR REPLACE FUNCTION test."Trigg"()
RETURNS trigger AS
$BODY$BEGIN
NEW.total := 999;
RETURN NEW;
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION test."Trigg"() OWNER TO postgres;Fonctionne à merveille…
Donc qu'est-ce qui ne va pas avec ma somme?
[/EDIT]
#35 Re : Général » [Débutant] Trigger/Calcul » 27/05/2010 14:30:47
Ok…
J'ai l'agréable sensation de comprendre!!
J'ai réussi la ligne de commande dans le Query Tool. Mais ce que je voulais moi, c'est que le résultat se mette à jour lorsque j'entre les données dans la table… Ainsi, je peux imprimer la table et voir quels ont été les mouvements sans avoir à faire de requête(s). Et ça c'est impossible donc?
#36 Général » [Débutant] Trigger/Calcul » 27/05/2010 12:32:52
- LeHibou
- Réponses : 9
Bonjour à tous,
il y a deux points noirs que j'aimerais éclaircir.
En premier lieu, j'ai cherché sur le net.
Je déteste poster sans être sûr de ce que je fais.
J'ai trouvé sur plusieurs sites la synthaxe pour faire un calcul:
http://www.informaticien.be/forum_topic … n_SQL.html
http://www.commentcamarche.net/forum/af … e-calculer
etc…
Maintenant, j'utilise pgAdmin 3. Voici la table concernée:
-- Table: test.toto
-- DROP TABLE test.toto;
CREATE TABLE test.toto
(
entree numeric,
sortie numeric,
total numeric,
id_produit serial NOT NULL,
CONSTRAINT toto_pkey PRIMARY KEY (id_produit)
)
WITH (
OIDS=FALSE
);
ALTER TABLE test.toto OWNER TO postgres;et voici ce que je veux mettre en SQL dans la table total:
SELECT *
FROM toto.entree, toto.sortie, [entree]+[sortie]
AS total
FROM toto;Pourquoi cela ne marche-t'il pas comme sur les sites visités? Le "Ok" de la fenêtre reste grisé.
Autre question:
Admettons que je doive automatiser le processus dans le cadre d'un suivi des stocks, comment puis-je faire? J'ai essayé les triggers, mais j'ai toujours des erreurs:
-- Function: test."Trigg_toto"()
-- DROP FUNCTION test."Trigg_toto"();
CREATE OR REPLACE FUNCTION test."Trigg_toto"()
RETURNS trigger AS
$BODY$DECLARE
total numeric;
BEGIN
total = toto.entree - toto.sortie;
RETURN NEW;
END $BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION test."Trigg_toto"() OWNER TO postgres;Quand je change NEW par total, j'ai un message d'erreur.
Avez-vous une idée svp?
A bientôt
#37 Re : Général » Menu déroulant dans Edition de table » 27/05/2010 10:22:14
Bonjour,
Est-ce que cela sera prévu un jour? Le gain de temps serait formidable…
#38 Re : Général » Menu déroulant de valeurs dans Edition de table » 26/05/2010 21:19:13
Merci de votre réponse gleu.
J'en prends bonne note et patiente.
A bientôt!
LeHibou
#39 Re : Général » Menu déroulant dans Edition de table » 26/05/2010 20:24:20
Bonsoir gleu,
Je viens de me rendre compte que je me suis trompé dans le titre du sujet!
il aurait dû être : "Sauvegarde tables Query Tool"!!!
Désolé.
Pour la question, lorsque je fais une requête via le Query Tool, j'ai accès aux tables en visuel, comme dans Access.
C'est très pratique de configurer les jointures et les critères de recherche.
Maintenant, ce que je souhaite, c'est que les tables que j'ai sélectionnées cessent de disparaître lorsque je quitte le Query Tool, à la fin de ma requête.
Partons du postulat que ma table est configurée (clés primaires…). Définissons les étapes que je suis:
1) Je rentre dans le Query Tool.
2) Je sélectionne les tables que je souhaite.
3) Je fais les jointures.
4) Je rentre les critères que je veux.
5) Je lance l'exécution.
6) Mes résultats apparaissent dans le SQL Editor. Tout va bien.
7) Je décide de faire autre chose: fermer pgAdmin/continuer de construire ma base/… Bref, je ferme et sauvegarde.
8) Admettons que je doive faire une nouvelle requête
9) Mes tables graphiques avec les jointures ont disparu!!
Ce que je souhaite moi, c'est voir toutes mes tables et ne plus avoir à toucher aux jointures puisqu'elles sont bonnes. Je ne devrais avoir qu'à entrer mes nouveaux critères de recherche, pas à recliquer sur toutes mes tables et refaire mes jointures à chaque requête différente!
Un Access-like en somme. Filemaker aussi fait cela dans la gestion de la base de donnée.
Je deviens un peu long mais si je me suis mal exprimé sur un point, faites le moi savoir, je reprendrai sans aléa.
Je vous dis à très bientôt,
LeHibou
#40 Général » Menu déroulant de valeurs dans Edition de table » 26/05/2010 17:55:02
- LeHibou
- Réponses : 3
[PostgrSQL 8.4 - pgAdmin 3 - OSX 10.6]
[Posté également sur developpez.net]
Bonjour à tous,
Décidément, ces derniers jours je poste beaucoup. Avant de migrer vers PostgreSQL, j'utilisais MySQL. Celui-ci possède un type de donnée qui s'appelle "enum".
Celui-ci me permettait d'avoir le choix d'une valeur dans une liste qui se déroulait. C'est très pratique pour savoir directement ce qu'on a comme choix et ne pas perdre de temps à se faire ramoner pour viol de contrainte.
Alors, pour contourner le problème j'ai créé d'autres tables pour simuler cet "enum". De par les lectures que j'ai eues, il semble que c'est là le moyen le plus propre de procéder.
Voici une base de donnée factice, dont le but est de savoir si un individu a des cheveux et de définir leur couleur:
-- Table: test."Table1"
-- DROP TABLE test."Table1";
CREATE TABLE test."Table1"
(
possede_cheveux character varying NOT NULL,
"Couleur_cheveux" character varying,
CONSTRAINT "Table1_pkey" PRIMARY KEY (possede_cheveux),
CONSTRAINT "Table1_Couleur_cheveux_fkey" FOREIGN KEY ("Couleur_cheveux")
REFERENCES test."Choix_Couleur" ("Couleur") MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT "Table1_possede_cheveux_fkey" FOREIGN KEY (possede_cheveux)
REFERENCES test."Choix_Possede" ("Choix") MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);
ALTER TABLE test."Table1" OWNER TO postgres;
-- Index: test.fki_
-- DROP INDEX test.fki_;
CREATE INDEX fki_
ON test."Table1"
USING btree
("Couleur_cheveux");liée à ces deux tables ci dessous:
-- Table: test."Choix_Couleur"
-- DROP TABLE test."Choix_Couleur";
CREATE TABLE test."Choix_Couleur"
(
"Couleur" character varying NOT NULL,
CONSTRAINT "Choix_Couleur_pkey" PRIMARY KEY ("Couleur")
)
WITH (
OIDS=FALSE
);
ALTER TABLE test."Choix_Couleur" OWNER TO postgres;et
-- Table: test."Choix_Possede"
-- DROP TABLE test."Choix_Possede";
CREATE TABLE test."Choix_Possede"
(
"Choix" character varying NOT NULL,
CONSTRAINT "Choix_Possede_pkey" PRIMARY KEY ("Choix")
)
WITH (
OIDS=FALSE
);
ALTER TABLE test."Choix_Possede" OWNER TO postgres;La question devient donc:
Peut-on, lorsqu'on ajoute des données à la Table 1, avoir un petit menu déroulant reprenant les valeurs de la table liée par la clé étrangère , et ce pour chaque colonne?
Je vous remercie par avance,
A bientôt,
LeHibou2
#41 Général » Menu déroulant dans Edition de table » 26/05/2010 17:51:43
- LeHibou
- Réponses : 5
[PostgreSQL 8.4 - pgAdmin 3 - Mac OSX]
[Posté également sur developpez.net]
Bonjour à tous!
Je viens sur ce forum car je suis un créateur d'entreprise soucieux d'économies. Raison pour laquelle mon choix de BDD s'est porté sur PostgreSQL. J'ai eu le week end dernier pour me plonger dans le SQL.
Aujourd'hui cependant, j'ai une question:
Peut-on afficher ET sauvegarder toutes les tables et leurs dépendances dans le Query Tool de pgAdmin3, à la manière de Access ou Filemaker?
Parce que dès que je ferme le Query Tool, mes tables disparaissent aussi. Ce que je souhaiterais éviter…
J'ai un souci assez important d'économie de temps/rentabilité (créa d'entreprise) et je pense que -de par mon niveau de débutant- sélectionner de manière graphique une colonne et une valeur est plus rapide que d'entrer des fonctions WHERE à un bout de code pré-enregistré en SQL (dans la section SQL Editor).
Je reste à votre écoute s'il y a un point sur lequel je me suis mal exprimé.
A bientôt,
LeHibou2