Soustraction de résultats de deux requettes
filoulebauju
-
filoulebauju -
filoulebauju -
Bonjour,
Je voudrais savoir si il était possible de réaliser une soustraction à partir de résultats d'autre requetes.
Voici mes requetes:
Requete1:
SELECT ROUND(Sum(expr1),2) AS Expr2
FROM (SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneFacture
WHERE (((Year([DateDocument]))=YEAR(now)-2)
AND ((Month([DateDocument]))=1))
Union
SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneRecapCaisse
WHERE (((Year([DateDocument]))=YEAR(now)-2)
AND ((Month([DateDocument]))=1))
) AS [%$##@_Alias];
Requete2:
SELECT ROUND(Sum(expr1),2) AS Expr2
FROM (SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneFacture
WHERE (((Year([DateDocument]))=YEAR(now)-1)
AND ((Month([DateDocument]))=1))
Union
SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneRecapCaisse
WHERE (((Year([DateDocument]))=YEAR(now)-1)
AND ((Month([DateDocument]))=1))
) AS [%$##@_Alias];
Je voudrais savoir si il y avait un opérateur tel que UNION pour la soustraction.
Merci d'avance.
Je voudrais savoir si il était possible de réaliser une soustraction à partir de résultats d'autre requetes.
Voici mes requetes:
Requete1:
SELECT ROUND(Sum(expr1),2) AS Expr2
FROM (SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneFacture
WHERE (((Year([DateDocument]))=YEAR(now)-2)
AND ((Month([DateDocument]))=1))
Union
SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneRecapCaisse
WHERE (((Year([DateDocument]))=YEAR(now)-2)
AND ((Month([DateDocument]))=1))
) AS [%$##@_Alias];
Requete2:
SELECT ROUND(Sum(expr1),2) AS Expr2
FROM (SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneFacture
WHERE (((Year([DateDocument]))=YEAR(now)-1)
AND ((Month([DateDocument]))=1))
Union
SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneRecapCaisse
WHERE (((Year([DateDocument]))=YEAR(now)-1)
AND ((Month([DateDocument]))=1))
) AS [%$##@_Alias];
Je voudrais savoir si il y avait un opérateur tel que UNION pour la soustraction.
Merci d'avance.
A voir également:
- Sql soustraction
- Logiciel sql - Télécharger - Bases de données
- Soustraction en anglais excel ✓ - Forum Excel
- Jointure sql ✓ - Forum MySQL
- Excel soustraction avec condition ✓ - Forum Excel
- Requete sql pix - Forum PHP
4 réponses
Vous êtes excusés, faute avouée à moitié pardonnée.
Dans ce cas, ce n'est pas UNION et MINUS qu'il faut utiliser, mais dans une même requête effectuer le calcul.
Select (sum(Requête 1.1)+Select sum(Requête1.2)) - (sum(Requête 2.1)+Select sum(Requête2.2) )
From TheTable where gnagnagna;
Dans ce cas, ce n'est pas UNION et MINUS qu'il faut utiliser, mais dans une même requête effectuer le calcul.
Select (sum(Requête 1.1)+Select sum(Requête1.2)) - (sum(Requête 2.1)+Select sum(Requête2.2) )
From TheTable where gnagnagna;
"Merci mais peux tu me donner un exemple avec mon problème stp?"
On n'est pas chez mémé, ici, nous sommes entre gentilshommes. Un peu plus de courtoisie, s'il vous plaît.
Donc pour votre requête, je ne sais pas exactement ce que vous souhaitez faire, puisque le UNION sert à rajouter les résultats de la deuxième requête à la première, tandis que le MINUS sert à effacer de la première requête les résultats de la seconde. Pour savoir si Access supporte le Minus, ne sous-estimez pas son aide, elle peut se montrer plus utile en SQL que l'on ne peut se l'imaginer.
Si j'ai bien compris, vous désirez faire Requête2 MINUS Requête1;
(SELECT ROUND(Sum(expr1),2) AS Expr2
FROM (SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneFacture
WHERE (((Year([DateDocument]))=YEAR(now)-2)
AND ((Month([DateDocument]))=1))
Union
SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneRecapCaisse
WHERE (((Year([DateDocument]))=YEAR(now)-2)
AND ((Month([DateDocument]))=1))
) AS [%$##@_Alias]; )
MINUS
(SELECT ROUND(Sum(expr1),2) AS Expr2
FROM (SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneFacture
WHERE (((Year([DateDocument]))=YEAR(now)-1)
AND ((Month([DateDocument]))=1))
Union
SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneRecapCaisse
WHERE (((Year([DateDocument]))=YEAR(now)-1)
AND ((Month([DateDocument]))=1))
) AS [%$##@_Alias];)
Cependant, si c'est la soustraction des résultats des sommes que vous désirez, vous devrez le faire en une seule requête.
On n'est pas chez mémé, ici, nous sommes entre gentilshommes. Un peu plus de courtoisie, s'il vous plaît.
Donc pour votre requête, je ne sais pas exactement ce que vous souhaitez faire, puisque le UNION sert à rajouter les résultats de la deuxième requête à la première, tandis que le MINUS sert à effacer de la première requête les résultats de la seconde. Pour savoir si Access supporte le Minus, ne sous-estimez pas son aide, elle peut se montrer plus utile en SQL que l'on ne peut se l'imaginer.
Si j'ai bien compris, vous désirez faire Requête2 MINUS Requête1;
(SELECT ROUND(Sum(expr1),2) AS Expr2
FROM (SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneFacture
WHERE (((Year([DateDocument]))=YEAR(now)-2)
AND ((Month([DateDocument]))=1))
Union
SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneRecapCaisse
WHERE (((Year([DateDocument]))=YEAR(now)-2)
AND ((Month([DateDocument]))=1))
) AS [%$##@_Alias]; )
MINUS
(SELECT ROUND(Sum(expr1),2) AS Expr2
FROM (SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneFacture
WHERE (((Year([DateDocument]))=YEAR(now)-1)
AND ((Month([DateDocument]))=1))
Union
SELECT Sum(TotalLigneHT) as expr1
FROM BIO_LigneRecapCaisse
WHERE (((Year([DateDocument]))=YEAR(now)-1)
AND ((Month([DateDocument]))=1))
) AS [%$##@_Alias];)
Cependant, si c'est la soustraction des résultats des sommes que vous désirez, vous devrez le faire en une seule requête.
Désolé pour le manque de courtoisie.
Merci pour votre aide mais malheureusement, au moment de la compilation, il m'affiche "erreur de syntaxe dans la requete UNION".
Pour une meilleure vision de mon problème,
ma requete1 retourne 15 et ma requete2 retourne 12 (ceci un éxemple)
Je voudrai que la troisième requete me sorte 3, la soustraction du résultat des deux précédentes.
Merci de votre aide
Merci pour votre aide mais malheureusement, au moment de la compilation, il m'affiche "erreur de syntaxe dans la requete UNION".
Pour une meilleure vision de mon problème,
ma requete1 retourne 15 et ma requete2 retourne 12 (ceci un éxemple)
Je voudrai que la troisième requete me sorte 3, la soustraction du résultat des deux précédentes.
Merci de votre aide
étant en stage, je ne peux modifier la base mais seulement m'adapter à celle-ci et sans relation, le moindre opérateur devient un calvaire.
Je vous remercie de votre aide et si ce n'est pas trop vous demander, pouriez vous m'aider encore un tout petit peu . :d
Access supporte bien ceci, non ?
Merci beaucoup en tout cas.