Bonjour,

J'ai un problème dans l'établissement d'une requête.
Je précise que je ne suis pas du tout expert d'Oracle. J'utilise le logiciel Jet Reports (souvent utilisé avec l'ERP Dynamics anciennement Navision je crois) en lien avec une base de données Oracle (elle-même étant la base de données de notre ERP Infor BaaN LN). C'est un outil d'extraction depuis des tables. Dans le cadre de ce logiciel, quand ses possibilités sont trop limitées, il autorise l'utilisation de requête SQL qu'on doit écrire soi-même.
Mais autant je connais a priori bien les tables de mon ERP et ce que je veux en faire, autant je ne connais pas toujours la syntaxe pour réaliser ce que je veux.

Ceci ci-dessous fonctionne pour donner la valeur du stock quasi comme dans l'ERP :

SQL=
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT 
SUM ( ROUND ( T1.T$QHND * TTICPR340155.T$RECA$1 , 2 ) ) 
AS SELECTION 
FROM 
LNGROUP.TWHWMD215155 T1 , 
LNGROUP.TTCIBD001155 , 
LNGROUP.TTICPR007155 , 
LNGROUP.TTICPR340155 
WHERE 
T1.T$ITEM = TTCIBD001155.T$ITEM AND 
T1.T$ITEM = TTICPR007155.T$ITEM AND 
T1.T$ITEM = TTICPR340155.T$ITEM AND 
TTICPR340155.T$INDT = TTICPR007155.T$LTCP AND 
%Filter1%
Mais hélas je ne dois pas faire l'arrondi sur le produit final une fois fini tout ce select.
Je dois faire l'arrondi sur le prix de revient unitaire total de l'article puis seulement le multiplier pas la quantité.
TWHWMD215155 c'est la table du stock où il y a la quantité.
TTICPR340155 c'est la table du prix de revient mais un article y a plusieurs records (par élément de prix de revient et par date de calcul).
TTCIBD001155 et TTICPR007155 ce sont des tables d'article dont j'ai besoin à terme pour les critères/plages du select.

J'ai tenté intuitivement cette syntaxe ci-dessous (je "renomme" une table T1 en me disant que le lien se ferait mieux), mais ça ne fonctionne pas au sens qu'elle n'est même pas valide :

SQL=
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT 
SUM ( ROUND ( T1.T$QHND * 
( SELECT 
SUM ( TTICPR340155.T$RECA$1 ) 
FROM 
T1 , 
LNGROUP.TTCIBD001155 , 
LNGROUP.TTICPR007155 , 
LNGROUP.TTICPR340155 
WHERE 
TTCIBD001155.T$ITEM = T1.T$ITEM AND 
TTCIBD001155.T$ITEM = TTICPR007155.T$ITEM AND 
TTCIBD001155.T$ITEM = TTICPR340155.T$ITEM AND 
TTICPR340155.T$INDT = TTICPR007155.T$LTCP )
 , 2 ) ) 
AS SELECTION 
FROM LNGROUP.TWHWMD215155 T1 
WHERE 
%Filter1%

Une idée de comment multiplier un champ par une somme de champ avec une jointure ?

Visiblement ce n'est pas si simple que d'écrire le produit d'un champ par un select sum lié au précédent champ.

Merci d'avance.