[Solved] Requêtes SQL imbriquées

1
0
-1

Bonsoir,
J'ai un problème avec les requêtes SQL, est ce qu'il est possible de faire des requêtes imbriquées en utilisant des connecteurs?
En effet, je voudrais faire une sorte de requête comme ceci : la valeur du champ 'N°Consultation' est le résultat du requête SELECT
J'ai essayé d’écrire la requête comme ci dessous mais ça n'a pas marché,
Prière de m'indiquer où se situe la faute si c'est un problème de syntaxe de requête ou de m'indiquer une autre solution car je suis encore débutante.
Merci pour votre aide par avance.

N.B : J'utilise BOS 6.5.1

INSERT INTO `patient valide`.`paiement` (`N°Paiement`, `N°CIN`, `N°Consultation`, `Montant`)
VALUES (NULL,'${ncin}',
SELECT N°Consultation FROM consultation WHERE Date_Consultation=${Date_Inscription} AND N°CIN=${ncin},
 '${montant}');
2 answers

1
0
-1
This one is the BEST answer!

Bonjour,
Enfin, j'ai résolu mon problème de requêtes imbriquées, c’était des erreurs de syntaxe (manque d'apostrophes et de parenthèses).
Voici la syntaxe correcte de la requête :

INSERT INTO `patient valide`.`paiement` (`N°Paiement`, `N°CIN`, `N°Consultation`, `Montant`)
VALUES (NULL,'${ncin}',
                                         (
                                          SELECT `N°Consultation` FROM `consultation`
                                          WHERE `N°CIN`='${ncin}'
                                          AND `Date_Consultation`='${dateInscription}'
                                          ),
'${montant}');

Merci en tout cas pour votre aide.

1
0
-1

translate.google.com

Do nested statements work in Connectors, yes they do. I've used then before with no problem.

Are you sure the statement works? Have you tested it with hard coded values?

I would build the statement first as hardcoded values in the SQL platform you are using (you don't say). When this works copy the statement to BonitaSoft Connector and edit it there one variable at a time to see what is happening. It should work fine.

For PostgreSQL the SQL development environment is III
For Microsoft SQL 2012 the SQL development environment is SQL Server Data Tools

regards
Seán

Comments

Submitted by ghada45 on Mon, 08/17/2015 - 20:49

Bonjour,
Merci pour votre réponse Sean McP,
Mais j'ai déjà essayé auparavant d'écrire la requête au niveau du connecteur du BonitaSoft dont la valeur du champ N°Consultation est '159' (voir ci dessous) et elle marche parfaitement (il y avait une insertion avec cette valeur et les autres valeurs dans la table)

INSERT INTO `patient valide`.`paiement` (`N°Paiement`, `N°CIN`, `N°Consultation`, `Montant`)
VALUES (NULL,'${ncin}', '159', '${montant}');

Alors j'ai constaté que l'erreur se situe au niveau du syntaxe de la requête SELECT, peut être un manque de guillemets ou autre chose, et j'ai pas encore compris où se situe le problème exactement.

N.B: j'utilise MySQL

Submitted by ghada45 on Mon, 08/17/2015 - 20:32

Bonjour,
Enfin, j'ai résolu mon problème de requêtes imbriquées, c’était des erreurs de syntaxe (manque d'apostrophes et de parenthèses).
Voici le syntaxe correcte de la requête :

INSERT INTO `patient valide`.`paiement` (`N°Paiement`, `N°CIN`, `N°Consultation`, `Montant`)
VALUES (NULL,'${ncin}',
                                         (
                                          SELECT `N°Consultation` FROM `consultation`
                                          WHERE `N°CIN`='${ncin}'
                                          AND `Date_Consultation`='${dateInscription}'
                                          ),
'${montant}');

Merci en tout cas pour votre aide.

Notifications