{SQL Server} Somme de deux requêtes imbriquée
Résolu/Fermé
A voir également:
- Requete imbriquée sql server
- Ps3 media server - Télécharger - Divers Réseau & Wi-Fi
- Liste imbriquée excel - Guide
- Filezilla server - Télécharger - Téléchargement & Transfert
- Mysql community server - Télécharger - Bases de données
- Serviio media server - Télécharger - TV & Vidéo
6 réponses
impek!! ça marche très bien!
j'avais également trouver une solution mais il me ramener une erreur de division par 0
du coup j'étais obligé de mettre la devise en dur dans ma requête pour quelle fonctionne..pas top!
en tout cas je te remercie vraiment, tu m'a vraiment aidé!
@+
yanouk
j'avais également trouver une solution mais il me ramener une erreur de division par 0
du coup j'étais obligé de mettre la devise en dur dans ma requête pour quelle fonctionne..pas top!
en tout cas je te remercie vraiment, tu m'a vraiment aidé!
@+
yanouk
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 391
24 juin 2009 à 14:12
24 juin 2009 à 14:12
Bonjour,
J'ai un peu changé le code et je l'ai testé avec SQL Server (pas les mêmes tables) et je n'ai plus d'erreur de syntaxe
J'ai aussi retiré le group by et order by car cela n'est pas nécessaire quand on utilise DISTINCT
A plus
J'ai un peu changé le code et je l'ai testé avec SQL Server (pas les mêmes tables) et je n'ai plus d'erreur de syntaxe
SELECT distinct b.[Code], (select sum( CASE [Sales header].[Currency Factor] WHEN 0 THEN a.Amount ELSE (a.Amount * (1/[Sales header].[Currency Factor])) END) FROM [Sales Line] a , [Sales header] where a.[Document No_]=[Sales header].No_ and b.[Code]=a.[PfsSalesperson Code]) as MontantTotal FROM [Salesperson_Purchaser] b where b.[Code] between '100' and '199'
J'ai aussi retiré le group by et order by car cela n'est pas nécessaire quand on utilise DISTINCT
A plus
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 391
24 juin 2009 à 12:07
24 juin 2009 à 12:07
Bonjour,
Le code suivant devrait faire ce que tu veux
J'ai remplacé la , par le signe + entre les deux résultats.
A plus
Le code suivant devrait faire ce que tu veux
SELECT distinct b.[Code], (( select cast(sum(a.Amount) as numeric(10,2)) FROM [Sales Line] a , [Sales header] where a.[Document No_]=[Sales header].No_ and b.[Code]=a.[PfsSalesperson Code] and [Sales header].[Currency Factor]=0 ) + ( select cast((sum(a.Amount)*(1/[Sales header].[Currency Factor])) as numeric(10,2)) FROM [Sales Line] a , [Sales header] where a.[Document No_]=[Sales header].No_ and b.[Code]=a.[PfsSalesperson Code] and [Sales header].[Currency Factor]<>0 group by [Sales header].[Currency Factor] )) as MontantTotal FROM [Salesperson_Purchaser] b where b.[Code] between '100' and '199' group by b.[Code] order by b.[Code]
J'ai remplacé la , par le signe + entre les deux résultats.
A plus
non cela ne fonctionne pas, désolé j'avais oublié de préciser que j'avais tester ça!
en fait j'ai tester pas mal de choses sans parvenir à mes fin...:(
espérant que un de vous aura une solution!
merci quand même pour l'aide
++
en fait j'ai tester pas mal de choses sans parvenir à mes fin...:(
espérant que un de vous aura une solution!
merci quand même pour l'aide
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 391
24 juin 2009 à 12:28
24 juin 2009 à 12:28
Bonjour,
Peux-tu alors essayer le code suivant
Je ne l'ai pas testé, à toi de voir.
A plus
Peux-tu alors essayer le code suivant
SELECT distinct b.[Code], sum( (select CASE [Sales header].[Currency Factor] WHEN 0 THEN a.Amount ELSE (a.Amount * (1/[Sales header].[Currency Factor])) END FROM [Sales Line] a , [Sales header] where a.[Document No_]=[Sales header].No_ and b.[Code]=a.[PfsSalesperson Code] )) as MontantTotal FROM [Salesperson_Purchaser] b where b.[Code] between '100' and '199' group by b.[Code] order by b.[Code]
Je ne l'ai pas testé, à toi de voir.
A plus
je n'avais pas pensé au case c'est vrai, cela semblé une très bonne solution mais...erreur ;(
il me dit :
Impossible d'exécuter une fonction d'agrégation sur une expression comportant un agrégat ou une sous-requête.
Les éléments ORDER BY doivent se retrouver dans la liste de sélection si SELECT DISTINCT est spécifié.
j'ai essayer de bidouyer autour de ça mais rien à faire...
une autre solution peut-être?!!^^
merci quand même
++
il me dit :
Impossible d'exécuter une fonction d'agrégation sur une expression comportant un agrégat ou une sous-requête.
Les éléments ORDER BY doivent se retrouver dans la liste de sélection si SELECT DISTINCT est spécifié.
j'ai essayer de bidouyer autour de ça mais rien à faire...
une autre solution peut-être?!!^^
merci quand même
++