Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/03/2011, 11h39   #1
Membre actif
 
Homme
Inscription : septembre 2009
Messages : 167
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2009
Messages : 167
Points : 162
Points : 162
Par défaut Clause Where sur un champ "calculé"

Bonjour, j'ai un petit soucis sur une requête SQL, je sais pas si c'est la bonne section, si ce n'est le cas, désolé du dérangement..
(Je suis sur SQl SERVER 2005)

Je souhaite faire un rapport avec Report Server qui prend en paramêtre un site pour afficher l'ensemble des produits chimiques qui s'y trouvent, or je n'ai pas stocké les sites dans ma base de données du coup pour entrer un site en paramètre ca devient compliqué.

Voici ma requête actuelle:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT        Article.ID_Article, Article.Nom_Article, Article.Famille_Produit, Article.Quantite_Utilisee, Article.Unite_Stockage, Article.FDS, Article.Date_FDS, Article.Date_Modif, 
                         Article.Date_Validation_FDS, Article.Solvant, Article.Pression_Vapeur, Article.Quantite_Max_Stock, Article.Frequence_Utilisation, Article.Risque_Potentiel, 
                         Article.Priorite, Article.Commentaire, Article.Code_UN, Article.Classe_UN, Article.Code_Utilisation, Article.Type, Article.Pictogramme1, Article.Pictogramme2, 
                         Article.Pictogramme3, Article.Pictogramme4, Article.Raison_Modif, Article_Fournisseur.ID_Article AS Expr1, Article_Fournisseur.Site, Article_Fournisseur.Fournisseur, 
                         Article_Stock.ID_Article AS Expr2, Article_Stock.Code_Magasin, Article_Stock.Quantite, Stock.Code_Magasin AS Expr3, Stock.Libelle_Magasin, 
                         Famille_Produit.Code_Famille, Famille_Produit.Nom_Famille, Fournisseurs.CODFOR, Fournisseurs.DITTA, Fournisseurs.INDIR, Fournisseurs.LOCAL, 
                         Fournisseurs.CAP, Fournisseurs.SHORT, CASE Article.FDS WHEN 'True' THEN RTRIM('Oui') ELSE RTRIM('Non') END AS FDS_FR, 
                         CASE SUBSTRING(Stock.Code_Magasin, 1, 1) WHEN '4' THEN RTRIM('Orbey') WHEN '5' THEN RTRIM('Fraize') WHEN '3' THEN RTRIM('Châteauroux') 
                         WHEN '2' THEN RTRIM('Orbey') END AS Centre
FROM            Article LEFT OUTER JOIN
                         Article_Fournisseur ON Article.ID_Article = Article_Fournisseur.ID_Article LEFT OUTER JOIN
                         Article_Stock ON Article.ID_Article = Article_Stock.ID_Article LEFT OUTER JOIN
                         Stock ON Article_Stock.Code_Magasin = Stock.Code_Magasin LEFT OUTER JOIN
                         Fournisseurs ON Article_Fournisseur.Fournisseur = Fournisseurs.CODFOR LEFT OUTER JOIN
                         Famille_Produit ON Article.Famille_Produit = Famille_Produit.Code_Famille
WHERE        C'est ici que je bloque
Comme vous le voyez c'est dans mon WHERE que je bloque, je ne peux pas faire un where sur la colonne Centre ou alors je m'y prends mal.

Si vous avez une solution ce serait super!!
papouuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 11h54   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
Centre n'est pas une colonne, puisque vous la définissez comme alias.
Vous devez donc reprendre l'expression pour filtrage...

Code :
1
2
3
4
5
6
WHERE        CASE SUBSTRING(Stock.Code_Magasin, 1, 1) 
                WHEN '4' THEN RTRIM('Orbey') 
                WHEN '5' THEN RTRIM('Fraize') 
                WHEN '3' THEN RTRIM('Châteauroux') 
                WHEN '2' THEN RTRIM('Orbey') 
             END = ???
Par exemple....

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/03/2011, 12h21   #3
Membre actif
 
Homme
Inscription : septembre 2009
Messages : 167
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2009
Messages : 167
Points : 162
Points : 162
Erf ok, je pensais que l'alias pouvait être pris en compte.
En tout cas Super!! Et MERCI pour cette réponse rapide!
papouuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 17h12   #4
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
La clause WHERE filtre les données DES TABLES, pas les données des requêtes....

ça c'est du SQL de base....
Pour apprendre SQL, mon livre comme mon site web, peut vous être utile !

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h07.


 
 
 
 
Partenaires

Hébergement Web