begin process at 2012 02 12 02:10:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Débutant(s)

 > 

Affichage horizontal des résultats d'une requête


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

Affichage horizontal des résultats d'une requête

jeudi 25 février 2010 à 18:02:00 | Affichage horizontal des résultats d'une requête

o06

Bonjour le forum,

Comment procéder pour afficher les résultats horizontalement d'une requête ?

REF TAILLE QTE

REFA TAILLE1 2
REFA TAILLE2 0
REFA TAILLE3 6
REFB TAILLE1 0
REFB TAILLE2 5
REFB TAILLE3 1

Est il possible d'avoir :

REF TAILLE1/QTE TAILLE2/QTE TAILLE3/QTE
REFA 2 0 6
REFB 0 5 1

Une piste ? Un grand merci d'avance.

Microsoft Management Console 3.0
Microsoft SQL Enterprise Manager 8.0
dimanche 28 février 2010 à 22:22:47 | Re : Affichage horizontal des résultats d'une requête

nhervagault

Administrateur CodeS-SourceS
Salut,

Si SQL SERVER >= 2005

Il y a la fonction pivot ou les cte
il faut regarder de ce coté

bon dev
lundi 1 mars 2010 à 11:33:05 | Re : Affichage horizontal des résultats d'une requête

o06

Merci nhervagault,

je pense qu'effectivement l'opérateur Pivot devrait convenir. J'ai vu sur le net qu'il était recommandé pour se substituer à une construction avec CASE (Ce que j'essaie de faire en ce moment)
Par contre je ne trouve rien concernant la syntaxe dans la documentation et l'explication donnée sur le site MSDN pour (les opérateurs) PIVOT et UMPIVOT est pour le moins absconse ... (en tous les cas à mon niveau)

Qqun aurait il la générosité (et un peu de temps à perdre) pour me mettre sur la voie ?

Un grand Merki.

PS : CTE là je ne sais même pas de quoi on parle ?

lundi 1 mars 2010 à 17:27:42 | Re : Affichage horizontal des résultats d'une requête

o06

Re,

Bon déjà mauvaise nouvelle pour moi, nous sommes en SQL server 2000 (soit disant la version préconisée pour SAGE version SQL). L'opérateur PIVOT avait l'air nickel mais ca ne marche pas.

Donc je me suis rabattu sur l'utilisation du 'CASE WHEN'
Mais j'ai un souci que je n'arrive pas à résoudre avec cette méthode : j'ai autant de ligne que de résultats pour une référence.
Si je reprends l'exemple du dessus cela me donne :
REFA 2 0 0
REFA 0 0 6
REFB 0 5 0
REFB 0 0 1

alors que je voudrais
REFA 2 0 6
REFB 0 5 1

Je vous soumets rapidement ma requête en tenant compte que :
- la table F_ARTICLE me sert pour définir des critères de sélections
- la table F_GAMSTOCK contient les infos sur les qtés d'article pour chaque taille
- la table F_ARTGAMME contient l'intitulé de la taille
Code :
SELECT     dbo.F_GAMSTOCK.AR_Ref ,
CASE WHEN dbo.F_ARTGAMME.EG_Enumere = 36 THEN SUM(dbo.F_GAMSTOCK.GS_QteSto) END AS [36],
CASE WHEN dbo.F_ARTGAMME.EG_Enumere = 38 THEN SUM(dbo.F_GAMSTOCK.GS_QteSto) END AS [38],
CASE WHEN dbo.F_ARTGAMME.EG_Enumere = 40 THEN SUM(dbo.F_GAMSTOCK.GS_QteSto) END AS [40]

FROM         dbo.F_GAMSTOCK INNER JOIN
                      dbo.F_ARTICLE ON dbo.F_GAMSTOCK.AR_Ref = dbo.F_ARTICLE.AR_Ref INNER JOIN
                      dbo.F_ARTGAMME ON dbo.F_GAMSTOCK.AG_No1 = dbo.F_ARTGAMME.AG_No
WHERE     (dbo.F_ARTICLE.AR_Gamme1 = 3) AND (dbo.F_GAMSTOCK.GS_QteSto > 0) AND (dbo.F_ARTICLE.AR_Stat03 = '1L')
GROUP BY dbo.F_GAMSTOCK.AR_Ref, dbo.F_ARTGAMME.EG_Enumere


un grand merki

mardi 2 mars 2010 à 17:41:06 | Re : Affichage horizontal des résultats d'une requête

o06

Réponse acceptée !
Re,

Bon je me réponds.
Pas à cause d'une éventuelle schizophrénie aigüe mais parce que peut être cela pourra aider d'autres novices dans l'embarras comme moi.

En fait 2 choses :
1 - la syntaxe CASE WHEN à modifier :
Code :
SUM(CASE WHEN dbo.F_ARTGAMME.EG_Enumere = 36 THEN dbo.F_GAMSTOCK.GS_QteSto ELSE 0 END) AS [36],

2 - supprimer dans le GROUP BY le paramètre concernant le champ [dbo.F_ARTGAMME.EG_Enumere
] (qui était requis avec l'ancienne syntaxe du CASE WHEN)

voilà.
A+
mardi 2 mars 2010 à 19:11:11 | Re : Affichage horizontal des résultats d'une requête

nhervagault

Administrateur CodeS-SourceS
Merci
Je ne connaissais pas cette syntaxe
le case dans le sum


Cette discussion est classée dans : résultats, requête, qte, refa, refb


Répondre à ce message

Sujets en rapport avec ce message

Affichage de tous les résultats d'une requête dans un seul champ [ par AlexMos ] Bonjour à tous, Je ne sais pas si mon titre est très explicite alors je vais m'expliquer Voila j'ai crée une base de données qui permet (entre aut Problème de requête de supression [ par walterskinner ] Bonjour, Je voudrais savoir s 'il existe une requête simple qui permette de régler mon problème. J'ai deux tables. La première est une table de list commander la selection des champs dans une requête [ par nicoosito64 ] Bonjour, Je possède une requête sélection dont voici le code : SELECT [Axes d'analyse].Produit, [Axes d'analyse].Référence, [Axes d'analyse].Sites F Contrôle un type de données dans requête [ par boumbo73 ] Bonjour à tous, Est ce qu'il est possible dans une requête de mettre un critère sur un type de données. Par exemple dans un champ téléphone qui est Requete de suppression SQL server [ par powerwave ] Bonjour, j'ai une table avec deux clé primaire: create table BL(Numero integer,Exercice integer,Reference varchar(50) constraint fk_bl foreign key r Comment afficher des enregistrements dont le COUNT donne 0 [ par benoitd77 ] Bonjour! J'ai une table d'élection, de candidats, d'électeurs et de votes et j'ai une requête qui me retourne le nombre de vote pour chaque candidats besoin d'aide pour un requête [ par Yoshifumi ] Bonjour, Je vous expose mon problème, j'ai 3 tables comme décrites ci-dessous de manière simplifiée: Commandes(idCommande, idDeLaPièce, quantitéCom 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 upper [ par seddiki1707 ] salut tout le monde, j'ai un problème a propos d'une requête qui'elle va afficher les noms majuscules! j 'ai esseyé avec cette requête mais ça marche aide pour une requête sql basique [ par mouffles ] bonjour, J'aimerai faire une requête php sql sur une de mes tables qui me permette de supprimer les scores d'une base de données inférieurs au 40 meil


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,278 sec (3)

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