Requete jointure conditionnelle [Résolu]

Messages postés
88
Date d'inscription
mardi 19 avril 2005
Dernière intervention
10 août 2007
- - Dernière réponse : floxone
Messages postés
88
Date d'inscription
mardi 19 avril 2005
Dernière intervention
10 août 2007
- 9 août 2007 à 09:23
Salut,


J'ai besoin de faire une requête de ce genre s'il vous plaît :


SELECT SUM (v1 * (t2.v2+t2.v3+t3.v4) / v5)
FROM table1 t1, table2 t2
WHERE t1.fk = t2.pk
AND [...]


C'est pour la suite que tout se complique :


Je dispose dans t1 de 3 booléens qui indiquent s'il faut respectivement prendre v2,v3 et v4 dans l'autre table pour la somme.


J'aimerai donc que la requête s'adapte à ces booléens :


Si t1.v2 1 AND t1.v3 1 AND t1.v4 = 1 alors t2.v2+t2.v3+t3.v4 Sinon...


Je ne sais pas si cela est possible avec une requête SQL : mon Transact-SQL n'est pas encore au point.


Pour info, cette requête est lancée dans une procédure stockée.


Merci d'avance pour votre coup de main.


Flo
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
446
Date d'inscription
vendredi 7 novembre 2003
Dernière intervention
8 octobre 2008
2
3
Merci
Bonjour,
select sum(V1* (case when t1.v2=1 and t1.v4=1 and t1.v3=1 then t2.v2+t2.v3+t3.v4 else 
  ( case when .... then .... else 
 (  case when .... then .... else ...end)
   end)
)/v5)....

Dom

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de dominique.stock
Messages postés
88
Date d'inscription
mardi 19 avril 2005
Dernière intervention
10 août 2007
0
Merci
Salut,

Merci beaucoup : cette requête marche à merveille.

A bientôt,

Flo
Commenter la réponse de floxone

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.