aminoss11
Messages postés3Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention27 août 2008
-
22 août 2008 à 09:57
aminoss11
Messages postés3Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention27 août 2008
-
27 août 2008 à 11:22
Bonjour a vous tous
j'ai trouvé un peu de defficulté de creer une requete croisé pour l'afficher sur une page aspx j'ai creer la page qui va afficher mon resultat de la requette mais j'ai trouvé une mal a faire une requette croisé sur sql server 2000 par contre il est tres facille sur ms access
j'ai une table qui contient les dates et les persoones et mode payement, j'ai 3 type de payment CB RIB ou CHEQUE
je veux une requette sur SQL 2000 qui va m afficher les resultat de chaque personne comme par exemple ci dessous
<colgroup><col style=\"WIDTH: 60pt\" span=\"5\" width=\"80\" /></colgroup>----
date, tv, CB, FFM, RIB, ----
18/08/08 , 1012 , 1, , 2, ----
18/08/08 , 1064 , 1, 1, 1, ----
18/08/08 , 1091 , , , 2, ----
18/08/08
, 1093
, , 1,
j'ai mis cette requette
SELECT tv, SUM([CB]) AS [CB], SUM([RIB]) AS [RIB], SUM([FFM]) AS [FFM]FROM (SELECT tv, CASE WHEN modep 'CB' THEN SUM(vente) END AS [CB], CASE WHEN modep 'RIB' THEN SUM(vente)
END AS [RIB] CASE WHEN modep = 'FFM' THEN SUM(vente) END AS [FFM]
FROM pro
WHERE (((pro.date) = [18/08/08]))
GROUP BY date, tv) AS ModePaiement
GROUP BY tv
mais sql ne comprend pas la case
je suis vraiment desolé de vous embetez mais si quelqu'un peu m'aider je vais le remercie de tout mon coeur
je vous souhaite une tres belle journée et j'attend vos proposition
merci d'avance
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 22 août 2008 à 22:46
Alors dans ta seconde requette,
- Il manque une virgule après [RIB]
- tu groupe par rapport à la date, hors celle-ci n'apparait pas dans le Select
- pour le Where essaye avec ceci : WHERE pro.date = '18/08/08'
aminoss11
Messages postés3Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention27 août 2008 24 août 2008 à 21:55
je te remercie vraiment bpppp de me repondre j'ai modifié encore ma requette comme suit
SELECT tv, SUM([CB]) AS [CB], SUM([RIB]) AS [RIB], SUM([FFM]) AS [FFM]
FROM (SELECT tv, CASE WHEN modep = 'CB' THEN SUM(vente) END AS [CB],
CASE WHEN modep = 'RIB' THEN SUM(vente) END AS [RIB],
CASE WHEN modep = 'FFM' THEN SUM(vente) END AS [FFM]
FROM pro
WHERE date= '18/08/08'
GROUP BY modep, tv) AS ModePaiement
GROUP BY tv
il me donne exactement maintenant le resultat qui je veux mais apres le message suivant :
Le Concepteur de requêtes ne gère pas la construction SQL CASE.
comment je peux annuler ce message es ce que a cause d'un erreur sur le code ou bien qui exactement parce que apres que je valide le message il me donne le resultat
j ss vraiment desolé de vous derangez a tres bientot j'espere
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 24 août 2008 à 22:10
TU exécute ta requette depuis Executive Manager ou depuis l'Analyseur de requette je presume.
Il semblerait que ce message soit dû aux outils de SQLServer 2000. Le moteur SQL est, lui, bien capable de gérer le Case.
Tu ne devrais, à priori, pas obtenir ce message lorsque tu executera ta requette depuis ton code.