Calcul dans BDD

Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013
- - Dernière réponse :  1234ili - 30 août 2019 à 13:57
Bonjour à tous,
J'ai un projet de gestion d'un entrepot de fleurs dans le cadre de ma formation, et j'ai un peu de mal avec Oracle...
J'ai une base de donnée avec 4 tables (lot reliée à détail_commande_réapro reliée à stockEntrepot, reliée à typeFleurs). Dans lot j'ai un attribut qteFleurs, et dans stockEntrepot un attribut qteFleursEntrepot. Mon problème est que qteFleursEntrepot doit être le résultat de l'addition de qteFleurs de la table lot en fonction d'un type de fleur.

Donc je voudrais savoir si quelqu'un aurait une solution ou de l'aide à m'apporter!!!!

Merci beaucoup d'avance!!
Afficher la suite 

4 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
0
Merci
dans le forum sql, tu devrais avoir plus de réponses ;)


Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013
0
Merci
Bonjour, j'ai réussi à trouver la requête qui me permet de faire ce que je voulais, mais un autre problème se pose... J'ai cette erreur qui apparait : ORA-01427: "Sous-interrogation ramenant un enregistrement de plus d'une ligne"

Je vous donne le code que j'ai intégrer sur C# :

sql1 = "(SELECT SUM(LOT.QTEFLEURS) AS SOMME " +
                   "FROM STOCKENTREPOT INNER JOIN " +                   "LOT ON STOCKENTREPOT.CODESTOCKENTREPOT LOT.CODESTOCKENTREPOT INNER JOIN " +                 "TYPEFLEURS ON STOCKENTREPOT.REFFLEUR TYPEFLEURS.REFFLEUR " +
                   "GROUP BY TYPEFLEURS.NOMFLEUR, TYPEFLEURS.REFFLEUR)";

            sql = "UPDATE STOCKENTREPOT " +
                  "SET QTEFLEURSENTREPOT = " + sql1 +
                  "WHERE STOCKENTREPOT.REFFLEUR IN(SELECT STOCKENTREPOT.REFFLEUR FROM STOCKENTREPOT)";

OleDbDataAdapter oleDbDataAdapter2 = new OleDbDataAdapter();
            DataSet dataSet2 = new DataSet();
            dataSet2.Clear();
            oleDbDataAdapter2 = new OleDbDataAdapter(sql, oleDbConnection1);
            OleDbCommandBuilder komme = new OleDbCommandBuilder(oleDbDataAdapter2);
            oleDbDataAdapter2.Fill(dataSet2, "Somme");

Est ce que quelqu'un pourrait m'apporter son aide sur ca??

Merci beaucoup d'avance à ceux qui m'aideront

Bonne soirée
Commenter la réponse de Jojo092
Messages postés
112
Date d'inscription
vendredi 24 décembre 2004
Statut
Membre
Dernière intervention
20 décembre 2011
0
Merci
    Bonjour,

A mon avis ta requete SQL (la première) te renvoit plus d'un enregistrement, essaie de l'exécuter à part pour voir quel résultat tu as.
Si j'ai bien compris ton erreur, ton interrogation (dans ce cas ta requete) a plusqu'une valeur ce qui rend difficile son insertion dans la table.

Kenza
Commenter la réponse de KenZara
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013
0
Merci
Oui c'est vrai, tu as raison. Pour contourner le problème, je me suis crée un curseur. Au moins je suis sur que ca marchera. Mais merci à ceux qui ont daigné me répondre!!! ^^
Bonne soirée tout le monde!!!
Bonjour, je sais que ça date mais peut etre jaurais laide, cest quoi le cursor que ta crier stp
Commenter la réponse de Jojo092