Problème dans un arrondi d'un select sum
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:
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:
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.