begin process at 2012 05 27 05:47:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Autre

 > 

Requêtes

 > 

Somme SQL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Somme SQL

lundi 16 novembre 2009 à 11:20:56 | Somme SQL

patricevernier

Bonjour je suis nul en informatique et on me demande de faire des requêtes SQL à partir de tableau présent sur un programme de gestion d'affaire.

En simple j'ai plusieurs tableaux
-affaire A avec (A.num_affaire, A.lib_affaire, A.login,...)
-lots L avec (L.num_affaire, L.num_lot (il ya souvent plusieurs lots par affaire), L.lib_lot, L.montant_commande (montant de la commande de chaque lot), ...
-Facture
-Postes
-...

Ce que l'on me demande, c'est de faire une requête pour obtenir dans um tableau les affaires par chargé d'affaire (login) avec la somme des montants de commande de chaque lot pour avoir le montant de l'affaire, le nombre de lot (ex:5 lots ou plus).

Voilà ce que j'ai fait pour la somme

SELECT DISTINCT A.num_affaire, A.lib_affaire,A.num_batiment,A.num_local, A.type_affaire, A.date_enreg,A.login, SUM(L.montant_commande) AS Montant FROM affaires A

LEFT OUTER JOIN charges_affaire_autorises CAA ON A.login=caa.login
LEFT OUTER JOIN lots L ON A.num_affaire=L.num_affaire
LEFT OUTER JOIN fournisseurs F ON F.fourniss_id = L.fourniss_id
LEFT OUTER JOIN utilisateurs U1 ON A.login = U1.login
LEFT OUTER JOIN utilisateurs U2 ON L.login = U2.login
LEFT OUTER JOIN utilisateurs U3 ON U3.login = 'VERNIER'
LEFT OUTER JOIN postes P ON P.num_lot = L.num_lot
LEFT OUTER JOIN factures FA ON FA.num_lot = L.num_lot

WHERE ((U3.NIVEAU_ACCES<>'EXTE') AND A.date_enreg >= '1/1/2009' AND A.date_enreg <= '01/01/2010' AND U2.Nom + ' ' + U2.Prenom IN ('BALLON Yves', 'BENOIT Cyril', 'CABANEL Eric', 'COLLEMARE stephane', 'CONRY Cécile', 'ENTZMANN Vincent') AND A.NUM_AFFAIRE=L.NUM_AFFAIRE)

OR ((U3.NIVEAU_ACCES='EXTE') AND ((A.LOGIN= 'VERNIER') OR ( 'VERNIER' IN (SELECT C.LOGIN FROM CHARGES_AFFAIRE_AUTORISES C INNER JOIN LOTS L ON L.NUM_AFFAIRE = C.NUM_AFFAIRE AND L.LOGIN = C.LOGIN WHERE C.NUM_AFFAIRE=A.NUM_AFFAIRE))) AND U2.Nom + ' ' + U2.Prenom IN ('BALLON Yves', 'BENOIT Cyril', 'CABANEL Eric', 'COLLEMARE stephane', 'CONRY Cécile', 'ENTZMANN Vincent') AND A.NUM_AFFAIRE=L.NUM_AFFAIRE) GROUP BY A.num_affaire

ORDER BY A.Login, A.num_affaire, A.lib_affaire, A.num_batiment, A.num_local, A.type_affaire, A.date_enreg,
SUM(L.montant_commande) AS Montant ASC


Cette requête sans la somme marche en me donnant plusieurs lignes de montant par affaire. Mais là ça ne marche pas .

Merci de m'aider...
lundi 16 novembre 2009 à 13:40:37 | Re : Somme SQL

nhervagault

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
Dans le group by il faut mettre tous les champs du select, sauf ceux qui sont agregés.

Ie dans ton exemple
A.num_affaire, A.lib_affaire,A.num_batiment,A.num_local, A.type_affaire, A.date_enreg,A.login

Attention l'ordre des champs du group by est important et le distinct ne sert pas dans ce cas.




lundi 16 novembre 2009 à 15:21:29 | Re : Somme SQL

patricevernier

Ok je me doutais et j'avais essayé ce que tu dit mais cela ne marche toujours pas. Est-ce que tu as une autre idée.
Merci pour ton aide
lundi 16 novembre 2009 à 19:11:05 | Re : Somme SQL

nhervagault

Administrateur CodeS-SourceS
Quel est le resultat ?
mardi 17 novembre 2009 à 08:37:57 | Re : Somme SQL

patricevernier

La requête ne se lance pas. Le logiciel de gestion d'affaire sur lequel la requête est faite me dit requête invalide donc je ne sais pas.
mardi 17 novembre 2009 à 21:06:46 | Re : Somme SQL

nhervagault

Administrateur CodeS-SourceS
Réponse acceptée !
Ah il doit avoir une erreur de syntaxe.

Tu es sur quel est le nom de la base de données qui utilises
Quel dis la base si tu execute la requete en direct dans la base.
mercredi 18 novembre 2009 à 15:56:44 | Re : Somme SQL

patricevernier

Le problème c'étai une virgule, ah des fois...
on en perd la tête.

Merci encore pour ton aide
mercredi 18 novembre 2009 à 16:55:46 | Re : Somme SQL

patricevernier

ah j'ai un autre souci les résultats des sommes sont fausses. La condition where A.num_affaire=L.num_affaire marche pour une autre requête que j'ai fait mais où je n'ai pas de conditions de noms. Dès que j'ajoute les noms les résultats deviennent faux. Pourquoi?

As-tu une idée


Cette discussion est classée dans : login, num, affaire, join, lot


Répondre à ce message

Sujets en rapport avec ce message

jointure de 2 requêtes SQL [ par patricevernier ] J'ai plusieurs tabs Affaires A avec numéro d'affaire, libellé, login, type, etc Lots L avec numéro d'affaire, libellé, montant commande, etc Double requête à faire en UNE [ par patricevernier ] Bonjour et merci pour votre aide. J'ai deux requêtes que j'ai construit et qui fonctionne. En gros j'ai des données num_affaire, montant_lots,date_e Trigger SQL server [ par Lolo36 ] Bonjour,Je souhaite créer un trigger qui incrémente un compteur.Voici l'algo que je souhaite mettre en place :A la création de la ligneLire dernier N° Select lent avec Inner Join et Order [ par vincentstryckmans ] Bonjour,Je souhaite trier une table table1 en fonction d'un champ d'une table2.Ces deux tables ont un champ qui les lient : table1.id_table2 et table2 Problème Requête SQL et Formulaire [ par Connectol ] Bonjour, J'ai créé un Formulaire '...Accueil' qui dispose d'un Sous-Formulaire '...Accueil2'Sur le Formulaire, il y a une saisie qui lance une requête AU SECOURS !!!!!!!!!!!!!!!!! Requete en MySQL [ par emma1006 ] Salut à tous,J'ai un petit souci pour une requete en MySQL. Ca doit pas être bien compliquémais moi je sais pas comment faire pour compacter ma demand problème de connexion [ par penchu ] bonjour à tous, je viens de découvrir qu'il existait la MSDE (et oui, je suis en retard apparemment, mais mieux vaut tard que jamais) Mais j'ai Incrémentation num_auto qui ne commence pas a "1" [ par MrJAY42 ] MrJAY42Bon je sais que c'est pas un forum SQL mais je fais mon site en php/MYSQLBon alors voila : je fais une table dans laquelle seront stockés des f du MCD au Relation Access ou Mysql... [ par jiojioforever ] Salut ! je suis en stage et je dois gérer une petite bibliotheque (VB+Access) j'ai donc élaboré un MCD et MLD CATEGORIE(num_cat, nom_cat) EDITEUR(num_ Liaison [ par RM50Man ] Est ce que sous mysql , il faut indiquer les liaisons entre les bases dans la requete par exemple WHERE ANNONCE.NUM_REGION = REGION.NUM_REGION AND ANN


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,995 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales