Requette croisé sur sql server 2000

Résolu
aminoss11 Messages postés 3 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 27 août 2008 - 22 août 2008 à 09:57
aminoss11 Messages postés 3 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 27 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

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
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'

La première requette me semble, elle, correcte.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
aminoss11 Messages postés 3 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 27 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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
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.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
aminoss11 Messages postés 3 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 27 août 2008
27 août 2008 à 11:22
la coté graphique d sql server 2000 n'accepte pas le case j'ai creer la vue d'apres l'analyseur de requette et ca marche tres bien maintenant

Merci bppp pour tes reponces et aussi ton aide et je te souhaite une tres belle journée
0
Rejoignez-nous