Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Bonjour,
FidoDido a écrit :
> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
> 1- Remise ID
> 2- Date
> 3- Clients
> 4- Catégorie
> 5- Produits
> 6- Montant
>
> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
> ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Bonjour,
FidoDido a écrit :
> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
> 1- Remise ID
> 2- Date
> 3- Clients
> 4- Catégorie
> 5- Produits
> 6- Montant
>
> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
> ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Bonjour,
FidoDido a écrit :
> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
> 1- Remise ID
> 2- Date
> 3- Clients
> 4- Catégorie
> 5- Produits
> 6- Montant
>
> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
> ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Bonjour Michel_D, voici le code que j'ai dans ma requete Union
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
"Michel__D" a écrit :Bonjour,
FidoDido a écrit :Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Bonjour Michel_D, voici le code que j'ai dans ma requete Union
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
"Michel__D" a écrit :
Bonjour,
FidoDido a écrit :
Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Bonjour Michel_D, voici le code que j'ai dans ma requete Union
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
"Michel__D" a écrit :Bonjour,
FidoDido a écrit :Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Re,
Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
la requête union est une solution tu rajoute un champ fictif correspondant
au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
le champ 0 AS 2009
SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
et pour la portion dédié à 2009
SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
HAVING et mettre une clause WHERE qui renverrait les enregistrements de
l'année concernée.
WHERE Year(Remise.Date) 08
FidoDido a écrit :
> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> HAVING (((Year([Daté])) 08))
> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> HAVING (((Year([Daté])) 09));
>
>
> "Michel__D" a écrit :
>
>> Bonjour,
>>
>> FidoDido a écrit :
>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
>>> 1- Remise ID
>>> 2- Date
>>> 3- Clients
>>> 4- Catégorie
>>> 5- Produits
>>> 6- Montant
>>>
>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
>>> ne 2009, comment dois-je faire ? merci de votre aide
>> Donne le contenu SQL de tes requêtes (SELECT ...)
>>
>> PS:Une requête union ne semble pas être la solution.
>>
Re,
Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
la requête union est une solution tu rajoute un champ fictif correspondant
au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
le champ 0 AS 2009
SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
et pour la portion dédié à 2009
SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
HAVING et mettre une clause WHERE qui renverrait les enregistrements de
l'année concernée.
WHERE Year(Remise.Date) 08
FidoDido a écrit :
> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> HAVING (((Year([Daté])) 08))
> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> HAVING (((Year([Daté])) 09));
>
>
> "Michel__D" a écrit :
>
>> Bonjour,
>>
>> FidoDido a écrit :
>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
>>> 1- Remise ID
>>> 2- Date
>>> 3- Clients
>>> 4- Catégorie
>>> 5- Produits
>>> 6- Montant
>>>
>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
>>> ne 2009, comment dois-je faire ? merci de votre aide
>> Donne le contenu SQL de tes requêtes (SELECT ...)
>>
>> PS:Une requête union ne semble pas être la solution.
>>
Re,
Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
la requête union est une solution tu rajoute un champ fictif correspondant
au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
le champ 0 AS 2009
SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
et pour la portion dédié à 2009
SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
HAVING et mettre une clause WHERE qui renverrait les enregistrements de
l'année concernée.
WHERE Year(Remise.Date) 08
FidoDido a écrit :
> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> HAVING (((Year([Daté])) 08))
> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> HAVING (((Year([Daté])) 09));
>
>
> "Michel__D" a écrit :
>
>> Bonjour,
>>
>> FidoDido a écrit :
>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
>>> 1- Remise ID
>>> 2- Date
>>> 3- Clients
>>> 4- Catégorie
>>> 5- Produits
>>> 6- Montant
>>>
>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
>>> ne 2009, comment dois-je faire ? merci de votre aide
>> Donne le contenu SQL de tes requêtes (SELECT ...)
>>
>> PS:Une requête union ne semble pas être la solution.
>>
Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
que je dois modifier ma requete Union ?
merci
"Michel__D" a écrit :Re,
Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
la requête union est une solution tu rajoute un champ fictif correspondant
au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
le champ 0 AS 2009
SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
et pour la portion dédié à 2009
SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
HAVING et mettre une clause WHERE qui renverrait les enregistrements de
l'année concernée.
WHERE Year(Remise.Date) 08
FidoDido a écrit :Bonjour Michel_D, voici le code que j'ai dans ma requete Union
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
"Michel__D" a écrit :Bonjour,
FidoDido a écrit :Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
que je dois modifier ma requete Union ?
merci
"Michel__D" a écrit :
Re,
Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
la requête union est une solution tu rajoute un champ fictif correspondant
au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
le champ 0 AS 2009
SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
et pour la portion dédié à 2009
SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
HAVING et mettre une clause WHERE qui renverrait les enregistrements de
l'année concernée.
WHERE Year(Remise.Date) 08
FidoDido a écrit :
Bonjour Michel_D, voici le code que j'ai dans ma requete Union
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
"Michel__D" a écrit :
Bonjour,
FidoDido a écrit :
Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
que je dois modifier ma requete Union ?
merci
"Michel__D" a écrit :Re,
Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
la requête union est une solution tu rajoute un champ fictif correspondant
au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
le champ 0 AS 2009
SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
et pour la portion dédié à 2009
SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
HAVING et mettre une clause WHERE qui renverrait les enregistrements de
l'année concernée.
WHERE Year(Remise.Date) 08
FidoDido a écrit :Bonjour Michel_D, voici le code que j'ai dans ma requete Union
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
"Michel__D" a écrit :Bonjour,
FidoDido a écrit :Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Oui, comme ceci :
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, 0, Remise.Montant
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
Ou théoriquement ce qui suit est équivalent (à vérifier) :
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, T3.Montant AS 2008, 0 AS 2009
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 08
UNION
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, 0, T3.Montant
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 09;
FidoDido a écrit :
> Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
> dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
> que je dois modifier ma requete Union ?
>
> merci
>
> "Michel__D" a écrit :
>
>> Re,
>>
>> Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
>> montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
>> la requête union est une solution tu rajoute un champ fictif correspondant
>> au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
>> le champ 0 AS 2009
>>
>> SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
>>
>> et pour la portion dédié à 2009
>>
>> SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
>>
>> PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
>> modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
>> HAVING et mettre une clause WHERE qui renverrait les enregistrements de
>> l'année concernée.
>>
>> WHERE Year(Remise.Date) 08
>>
>> FidoDido a écrit :
>>> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
>>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>> HAVING (((Year([Daté])) 08))
>>> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>> HAVING (((Year([Daté])) 09));
>>>
>>>
>>> "Michel__D" a écrit :
>>>
>>>> Bonjour,
>>>>
>>>> FidoDido a écrit :
>>>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
>>>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
>>>>> 1- Remise ID
>>>>> 2- Date
>>>>> 3- Clients
>>>>> 4- Catégorie
>>>>> 5- Produits
>>>>> 6- Montant
>>>>>
>>>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
>>>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
>>>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
>>>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
>>>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
>>>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
>>>>> ne 2009, comment dois-je faire ? merci de votre aide
>>>> Donne le contenu SQL de tes requêtes (SELECT ...)
>>>>
>>>> PS:Une requête union ne semble pas être la solution.
>>>>
Oui, comme ceci :
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, 0, Remise.Montant
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
Ou théoriquement ce qui suit est équivalent (à vérifier) :
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, T3.Montant AS 2008, 0 AS 2009
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 08
UNION
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, 0, T3.Montant
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 09;
FidoDido a écrit :
> Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
> dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
> que je dois modifier ma requete Union ?
>
> merci
>
> "Michel__D" a écrit :
>
>> Re,
>>
>> Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
>> montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
>> la requête union est une solution tu rajoute un champ fictif correspondant
>> au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
>> le champ 0 AS 2009
>>
>> SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
>>
>> et pour la portion dédié à 2009
>>
>> SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
>>
>> PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
>> modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
>> HAVING et mettre une clause WHERE qui renverrait les enregistrements de
>> l'année concernée.
>>
>> WHERE Year(Remise.Date) 08
>>
>> FidoDido a écrit :
>>> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
>>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>> HAVING (((Year([Daté])) 08))
>>> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>> HAVING (((Year([Daté])) 09));
>>>
>>>
>>> "Michel__D" a écrit :
>>>
>>>> Bonjour,
>>>>
>>>> FidoDido a écrit :
>>>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
>>>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
>>>>> 1- Remise ID
>>>>> 2- Date
>>>>> 3- Clients
>>>>> 4- Catégorie
>>>>> 5- Produits
>>>>> 6- Montant
>>>>>
>>>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
>>>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
>>>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
>>>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
>>>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
>>>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
>>>>> ne 2009, comment dois-je faire ? merci de votre aide
>>>> Donne le contenu SQL de tes requêtes (SELECT ...)
>>>>
>>>> PS:Une requête union ne semble pas être la solution.
>>>>
Oui, comme ceci :
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, 0, Remise.Montant
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
Ou théoriquement ce qui suit est équivalent (à vérifier) :
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, T3.Montant AS 2008, 0 AS 2009
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 08
UNION
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, 0, T3.Montant
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 09;
FidoDido a écrit :
> Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
> dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
> que je dois modifier ma requete Union ?
>
> merci
>
> "Michel__D" a écrit :
>
>> Re,
>>
>> Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
>> montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
>> la requête union est une solution tu rajoute un champ fictif correspondant
>> au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
>> le champ 0 AS 2009
>>
>> SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
>>
>> et pour la portion dédié à 2009
>>
>> SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
>>
>> PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
>> modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
>> HAVING et mettre une clause WHERE qui renverrait les enregistrements de
>> l'année concernée.
>>
>> WHERE Year(Remise.Date) 08
>>
>> FidoDido a écrit :
>>> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
>>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>> HAVING (((Year([Daté])) 08))
>>> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>> HAVING (((Year([Daté])) 09));
>>>
>>>
>>> "Michel__D" a écrit :
>>>
>>>> Bonjour,
>>>>
>>>> FidoDido a écrit :
>>>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
>>>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
>>>>> 1- Remise ID
>>>>> 2- Date
>>>>> 3- Clients
>>>>> 4- Catégorie
>>>>> 5- Produits
>>>>> 6- Montant
>>>>>
>>>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
>>>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
>>>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
>>>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
>>>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
>>>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
>>>>> ne 2009, comment dois-je faire ? merci de votre aide
>>>> Donne le contenu SQL de tes requêtes (SELECT ...)
>>>>
>>>> PS:Une requête union ne semble pas être la solution.
>>>>
Rebonjour Michel_D,
ca marche ton code, mais j'ai des clients qui ont des remises en 2008 et
2009, mais la j'ai deux lignes pour le même client, ne serais-ce pas possible
de mettre le résultat sur une seul Ligne, car la je me retrouve avec soit un
montant dans la colonne 2008 et aucun montant dans la colle 2009.
je pensais pas que Access était si compliqué :)
"Michel__D" a écrit :Oui, comme ceci :
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, 0, Remise.Montant
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
Ou théoriquement ce qui suit est équivalent (à vérifier) :
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, T3.Montant AS 2008, 0 AS 2009
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 08
UNION
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, 0, T3.Montant
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 09;
FidoDido a écrit :Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
que je dois modifier ma requete Union ?
merci
"Michel__D" a écrit :Re,
Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
la requête union est une solution tu rajoute un champ fictif correspondant
au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
le champ 0 AS 2009
SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
et pour la portion dédié à 2009
SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
HAVING et mettre une clause WHERE qui renverrait les enregistrements de
l'année concernée.
WHERE Year(Remise.Date) 08
FidoDido a écrit :Bonjour Michel_D, voici le code que j'ai dans ma requete Union
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
"Michel__D" a écrit :Bonjour,
FidoDido a écrit :Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Rebonjour Michel_D,
ca marche ton code, mais j'ai des clients qui ont des remises en 2008 et
2009, mais la j'ai deux lignes pour le même client, ne serais-ce pas possible
de mettre le résultat sur une seul Ligne, car la je me retrouve avec soit un
montant dans la colonne 2008 et aucun montant dans la colle 2009.
je pensais pas que Access était si compliqué :)
"Michel__D" a écrit :
Oui, comme ceci :
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, 0, Remise.Montant
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
Ou théoriquement ce qui suit est équivalent (à vérifier) :
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, T3.Montant AS 2008, 0 AS 2009
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 08
UNION
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, 0, T3.Montant
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 09;
FidoDido a écrit :
Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
que je dois modifier ma requete Union ?
merci
"Michel__D" a écrit :
Re,
Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
la requête union est une solution tu rajoute un champ fictif correspondant
au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
le champ 0 AS 2009
SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
et pour la portion dédié à 2009
SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
HAVING et mettre une clause WHERE qui renverrait les enregistrements de
l'année concernée.
WHERE Year(Remise.Date) 08
FidoDido a écrit :
Bonjour Michel_D, voici le code que j'ai dans ma requete Union
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
"Michel__D" a écrit :
Bonjour,
FidoDido a écrit :
Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Rebonjour Michel_D,
ca marche ton code, mais j'ai des clients qui ont des remises en 2008 et
2009, mais la j'ai deux lignes pour le même client, ne serais-ce pas possible
de mettre le résultat sur une seul Ligne, car la je me retrouve avec soit un
montant dans la colonne 2008 et aucun montant dans la colle 2009.
je pensais pas que Access était si compliqué :)
"Michel__D" a écrit :Oui, comme ceci :
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, 0, Remise.Montant
FROM Produits INNER JOIN (Clients INNER JOIN Remise
ON Clients.[Clients ID] = Remise.Client)
ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
Ou théoriquement ce qui suit est équivalent (à vérifier) :
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, T3.Montant AS 2008, 0 AS 2009
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 08
UNION
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
T3.Daté, 0, T3.Montant
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
WHERE Year(T3.[Daté]) 09;
FidoDido a écrit :Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
que je dois modifier ma requete Union ?
merci
"Michel__D" a écrit :Re,
Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
la requête union est une solution tu rajoute un champ fictif correspondant
au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
le champ 0 AS 2009
SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
et pour la portion dédié à 2009
SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
HAVING et mettre une clause WHERE qui renverrait les enregistrements de
l'année concernée.
WHERE Year(Remise.Date) 08
FidoDido a écrit :Bonjour Michel_D, voici le code que j'ai dans ma requete Union
SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
Produits.Produits, Remise.Daté, Remise.Montant AS 2008
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 08))
UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
= Remise.Client) ON Produits.[Produits ID] = Remise.Produits
GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
Produits], Produits.Produits, Remise.Daté, Remise.Montant
HAVING (((Year([Daté])) 09));
"Michel__D" a écrit :Bonjour,
FidoDido a écrit :Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Donne le contenu SQL de tes requêtes (SELECT ...)
PS:Une requête union ne semble pas être la solution.
Re,
Ben avec Access il faut réfléchir un peu plus et donc si tu garde le champ
[Daté] tu ne pourras jamais aligner les valeurs de 2008 et de 2009, donc tout
dépend de ce que tu veux; champ [Daté] ou pas (telle est la question).
A tester ce qui suit :
TRANSFORM First(T3.Montant) AS Valeur
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
GROUP BY T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
PIVOT Year(T3.[Daté]);
FidoDido a écrit :
> Rebonjour Michel_D,
> ca marche ton code, mais j'ai des clients qui ont des remises en 2008 et
> 2009, mais la j'ai deux lignes pour le même client, ne serais-ce pas possible
> de mettre le résultat sur une seul Ligne, car la je me retrouve avec soit un
> montant dans la colonne 2008 et aucun montant dans la colle 2009.
>
> je pensais pas que Access était si compliqué :)
>
> "Michel__D" a écrit :
>
>> Oui, comme ceci :
>>
>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
>> FROM Produits INNER JOIN (Clients INNER JOIN Remise
>> ON Clients.[Clients ID] = Remise.Client)
>> ON Produits.[Produits ID] = Remise.Produits
>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, Remise.Montant
>> HAVING (((Year([Daté])) 08))
>> UNION ALL
>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, 0, Remise.Montant
>> FROM Produits INNER JOIN (Clients INNER JOIN Remise
>> ON Clients.[Clients ID] = Remise.Client)
>> ON Produits.[Produits ID] = Remise.Produits
>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, Remise.Montant
>> HAVING (((Year([Daté])) 09));
>>
>> Ou théoriquement ce qui suit est équivalent (à vérifier) :
>>
>> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
>> T3.Daté, T3.Montant AS 2008, 0 AS 2009
>> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
>> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
>> WHERE Year(T3.[Daté]) 08
>> UNION
>> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
>> T3.Daté, 0, T3.Montant
>> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
>> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
>> WHERE Year(T3.[Daté]) 09;
>>
>>
>> FidoDido a écrit :
>>> Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
>>> dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
>>> que je dois modifier ma requete Union ?
>>>
>>> merci
>>>
>>> "Michel__D" a écrit :
>>>
>>>> Re,
>>>>
>>>> Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
>>>> montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
>>>> la requête union est une solution tu rajoute un champ fictif correspondant
>>>> au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
>>>> le champ 0 AS 2009
>>>>
>>>> SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
>>>>
>>>> et pour la portion dédié à 2009
>>>>
>>>> SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
>>>>
>>>> PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
>>>> modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
>>>> HAVING et mettre une clause WHERE qui renverrait les enregistrements de
>>>> l'année concernée.
>>>>
>>>> WHERE Year(Remise.Date) 08
>>>>
>>>> FidoDido a écrit :
>>>>> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
>>>>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>>>>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
>>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>>>> HAVING (((Year([Daté])) 08))
>>>>> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
>>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>>>> HAVING (((Year([Daté])) 09));
>>>>>
>>>>>
>>>>> "Michel__D" a écrit :
>>>>>
>>>>>> Bonjour,
>>>>>>
>>>>>> FidoDido a écrit :
>>>>>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
>>>>>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
>>>>>>> 1- Remise ID
>>>>>>> 2- Date
>>>>>>> 3- Clients
>>>>>>> 4- Catégorie
>>>>>>> 5- Produits
>>>>>>> 6- Montant
>>>>>>>
>>>>>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
>>>>>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
>>>>>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
>>>>>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
>>>>>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
>>>>>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
>>>>>>> ne 2009, comment dois-je faire ? merci de votre aide
>>>>>> Donne le contenu SQL de tes requêtes (SELECT ...)
>>>>>>
>>>>>> PS:Une requête union ne semble pas être la solution.
>>>>>>
Re,
Ben avec Access il faut réfléchir un peu plus et donc si tu garde le champ
[Daté] tu ne pourras jamais aligner les valeurs de 2008 et de 2009, donc tout
dépend de ce que tu veux; champ [Daté] ou pas (telle est la question).
A tester ce qui suit :
TRANSFORM First(T3.Montant) AS Valeur
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
GROUP BY T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
PIVOT Year(T3.[Daté]);
FidoDido a écrit :
> Rebonjour Michel_D,
> ca marche ton code, mais j'ai des clients qui ont des remises en 2008 et
> 2009, mais la j'ai deux lignes pour le même client, ne serais-ce pas possible
> de mettre le résultat sur une seul Ligne, car la je me retrouve avec soit un
> montant dans la colonne 2008 et aucun montant dans la colle 2009.
>
> je pensais pas que Access était si compliqué :)
>
> "Michel__D" a écrit :
>
>> Oui, comme ceci :
>>
>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
>> FROM Produits INNER JOIN (Clients INNER JOIN Remise
>> ON Clients.[Clients ID] = Remise.Client)
>> ON Produits.[Produits ID] = Remise.Produits
>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, Remise.Montant
>> HAVING (((Year([Daté])) 08))
>> UNION ALL
>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, 0, Remise.Montant
>> FROM Produits INNER JOIN (Clients INNER JOIN Remise
>> ON Clients.[Clients ID] = Remise.Client)
>> ON Produits.[Produits ID] = Remise.Produits
>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, Remise.Montant
>> HAVING (((Year([Daté])) 09));
>>
>> Ou théoriquement ce qui suit est équivalent (à vérifier) :
>>
>> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
>> T3.Daté, T3.Montant AS 2008, 0 AS 2009
>> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
>> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
>> WHERE Year(T3.[Daté]) 08
>> UNION
>> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
>> T3.Daté, 0, T3.Montant
>> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
>> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
>> WHERE Year(T3.[Daté]) 09;
>>
>>
>> FidoDido a écrit :
>>> Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
>>> dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
>>> que je dois modifier ma requete Union ?
>>>
>>> merci
>>>
>>> "Michel__D" a écrit :
>>>
>>>> Re,
>>>>
>>>> Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
>>>> montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
>>>> la requête union est une solution tu rajoute un champ fictif correspondant
>>>> au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
>>>> le champ 0 AS 2009
>>>>
>>>> SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
>>>>
>>>> et pour la portion dédié à 2009
>>>>
>>>> SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
>>>>
>>>> PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
>>>> modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
>>>> HAVING et mettre une clause WHERE qui renverrait les enregistrements de
>>>> l'année concernée.
>>>>
>>>> WHERE Year(Remise.Date) 08
>>>>
>>>> FidoDido a écrit :
>>>>> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
>>>>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>>>>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
>>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>>>> HAVING (((Year([Daté])) 08))
>>>>> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
>>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>>>> HAVING (((Year([Daté])) 09));
>>>>>
>>>>>
>>>>> "Michel__D" a écrit :
>>>>>
>>>>>> Bonjour,
>>>>>>
>>>>>> FidoDido a écrit :
>>>>>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
>>>>>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
>>>>>>> 1- Remise ID
>>>>>>> 2- Date
>>>>>>> 3- Clients
>>>>>>> 4- Catégorie
>>>>>>> 5- Produits
>>>>>>> 6- Montant
>>>>>>>
>>>>>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
>>>>>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
>>>>>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
>>>>>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
>>>>>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
>>>>>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
>>>>>>> ne 2009, comment dois-je faire ? merci de votre aide
>>>>>> Donne le contenu SQL de tes requêtes (SELECT ...)
>>>>>>
>>>>>> PS:Une requête union ne semble pas être la solution.
>>>>>>
Re,
Ben avec Access il faut réfléchir un peu plus et donc si tu garde le champ
[Daté] tu ne pourras jamais aligner les valeurs de 2008 et de 2009, donc tout
dépend de ce que tu veux; champ [Daté] ou pas (telle est la question).
A tester ce qui suit :
TRANSFORM First(T3.Montant) AS Valeur
SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
GROUP BY T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
PIVOT Year(T3.[Daté]);
FidoDido a écrit :
> Rebonjour Michel_D,
> ca marche ton code, mais j'ai des clients qui ont des remises en 2008 et
> 2009, mais la j'ai deux lignes pour le même client, ne serais-ce pas possible
> de mettre le résultat sur une seul Ligne, car la je me retrouve avec soit un
> montant dans la colonne 2008 et aucun montant dans la colle 2009.
>
> je pensais pas que Access était si compliqué :)
>
> "Michel__D" a écrit :
>
>> Oui, comme ceci :
>>
>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
>> FROM Produits INNER JOIN (Clients INNER JOIN Remise
>> ON Clients.[Clients ID] = Remise.Client)
>> ON Produits.[Produits ID] = Remise.Produits
>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, Remise.Montant
>> HAVING (((Year([Daté])) 08))
>> UNION ALL
>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, 0, Remise.Montant
>> FROM Produits INNER JOIN (Clients INNER JOIN Remise
>> ON Clients.[Clients ID] = Remise.Client)
>> ON Produits.[Produits ID] = Remise.Produits
>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>> Produits.Produits, Remise.Daté, Remise.Montant
>> HAVING (((Year([Daté])) 09));
>>
>> Ou théoriquement ce qui suit est équivalent (à vérifier) :
>>
>> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
>> T3.Daté, T3.Montant AS 2008, 0 AS 2009
>> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
>> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
>> WHERE Year(T3.[Daté]) 08
>> UNION
>> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
>> T3.Daté, 0, T3.Montant
>> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
>> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
>> WHERE Year(T3.[Daté]) 09;
>>
>>
>> FidoDido a écrit :
>>> Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
>>> dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
>>> que je dois modifier ma requete Union ?
>>>
>>> merci
>>>
>>> "Michel__D" a écrit :
>>>
>>>> Re,
>>>>
>>>> Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
>>>> montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
>>>> la requête union est une solution tu rajoute un champ fictif correspondant
>>>> au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
>>>> le champ 0 AS 2009
>>>>
>>>> SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
>>>>
>>>> et pour la portion dédié à 2009
>>>>
>>>> SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
>>>>
>>>> PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
>>>> modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
>>>> HAVING et mettre une clause WHERE qui renverrait les enregistrements de
>>>> l'année concernée.
>>>>
>>>> WHERE Year(Remise.Date) 08
>>>>
>>>> FidoDido a écrit :
>>>>> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
>>>>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
>>>>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
>>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>>>> HAVING (((Year([Daté])) 08))
>>>>> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
>>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
>>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
>>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
>>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
>>>>> HAVING (((Year([Daté])) 09));
>>>>>
>>>>>
>>>>> "Michel__D" a écrit :
>>>>>
>>>>>> Bonjour,
>>>>>>
>>>>>> FidoDido a écrit :
>>>>>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
>>>>>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
>>>>>>> 1- Remise ID
>>>>>>> 2- Date
>>>>>>> 3- Clients
>>>>>>> 4- Catégorie
>>>>>>> 5- Produits
>>>>>>> 6- Montant
>>>>>>>
>>>>>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
>>>>>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
>>>>>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
>>>>>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
>>>>>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
>>>>>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
>>>>>>> ne 2009, comment dois-je faire ? merci de votre aide
>>>>>> Donne le contenu SQL de tes requêtes (SELECT ...)
>>>>>>
>>>>>> PS:Une requête union ne semble pas être la solution.
>>>>>>
Tu es un Geni, Genial ca marche, me reste plus qu'a essayer de faire un état
qui va me calcule la différence entre 2009 et 2008.
Merci à Michel_D
"Michel__D" a écrit :
> Re,
>
> Ben avec Access il faut réfléchir un peu plus et donc si tu garde le champ
> [Daté] tu ne pourras jamais aligner les valeurs de 2008 et de 2009, donc tout
> dépend de ce que tu veux; champ [Daté] ou pas (telle est la question).
>
> A tester ce qui suit :
>
> TRANSFORM First(T3.Montant) AS Valeur
> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
> GROUP BY T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
> PIVOT Year(T3.[Daté]);
>
>
> FidoDido a écrit :
> > Rebonjour Michel_D,
> > ca marche ton code, mais j'ai des clients qui ont des remises en 2008 et
> > 2009, mais la j'ai deux lignes pour le même client, ne serais-ce pas possible
> > de mettre le résultat sur une seul Ligne, car la je me retrouve avec soit un
> > montant dans la colonne 2008 et aucun montant dans la colle 2009.
> >
> > je pensais pas que Access était si compliqué :)
> >
> > "Michel__D" a écrit :
> >
> >> Oui, comme ceci :
> >>
> >> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
> >> FROM Produits INNER JOIN (Clients INNER JOIN Remise
> >> ON Clients.[Clients ID] = Remise.Client)
> >> ON Produits.[Produits ID] = Remise.Produits
> >> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, Remise.Montant
> >> HAVING (((Year([Daté])) 08))
> >> UNION ALL
> >> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, 0, Remise.Montant
> >> FROM Produits INNER JOIN (Clients INNER JOIN Remise
> >> ON Clients.[Clients ID] = Remise.Client)
> >> ON Produits.[Produits ID] = Remise.Produits
> >> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, Remise.Montant
> >> HAVING (((Year([Daté])) 09));
> >>
> >> Ou théoriquement ce qui suit est équivalent (à vérifier) :
> >>
> >> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
> >> T3.Daté, T3.Montant AS 2008, 0 AS 2009
> >> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
> >> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
> >> WHERE Year(T3.[Daté]) 08
> >> UNION
> >> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
> >> T3.Daté, 0, T3.Montant
> >> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
> >> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
> >> WHERE Year(T3.[Daté]) 09;
> >>
> >>
> >> FidoDido a écrit :
> >>> Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
> >>> dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
> >>> que je dois modifier ma requete Union ?
> >>>
> >>> merci
> >>>
> >>> "Michel__D" a écrit :
> >>>
> >>>> Re,
> >>>>
> >>>> Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
> >>>> montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
> >>>> la requête union est une solution tu rajoute un champ fictif correspondant
> >>>> au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
> >>>> le champ 0 AS 2009
> >>>>
> >>>> SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
> >>>>
> >>>> et pour la portion dédié à 2009
> >>>>
> >>>> SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
> >>>>
> >>>> PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
> >>>> modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
> >>>> HAVING et mettre une clause WHERE qui renverrait les enregistrements de
> >>>> l'année concernée.
> >>>>
> >>>> WHERE Year(Remise.Date) 08
> >>>>
> >>>> FidoDido a écrit :
> >>>>> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
> >>>>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >>>>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
> >>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> >>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> >>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> >>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> >>>>> HAVING (((Year([Daté])) 08))
> >>>>> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
> >>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
> >>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> >>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> >>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> >>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> >>>>> HAVING (((Year([Daté])) 09));
> >>>>>
> >>>>>
> >>>>> "Michel__D" a écrit :
> >>>>>
> >>>>>> Bonjour,
> >>>>>>
> >>>>>> FidoDido a écrit :
> >>>>>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
> >>>>>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
> >>>>>>> 1- Remise ID
> >>>>>>> 2- Date
> >>>>>>> 3- Clients
> >>>>>>> 4- Catégorie
> >>>>>>> 5- Produits
> >>>>>>> 6- Montant
> >>>>>>>
> >>>>>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
> >>>>>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
> >>>>>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
> >>>>>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
> >>>>>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
> >>>>>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
> >>>>>>> ne 2009, comment dois-je faire ? merci de votre aide
> >>>>>> Donne le contenu SQL de tes requêtes (SELECT ...)
> >>>>>>
> >>>>>> PS:Une requête union ne semble pas être la solution.
> >>>>>>
>
Tu es un Geni, Genial ca marche, me reste plus qu'a essayer de faire un état
qui va me calcule la différence entre 2009 et 2008.
Merci à Michel_D
"Michel__D" a écrit :
> Re,
>
> Ben avec Access il faut réfléchir un peu plus et donc si tu garde le champ
> [Daté] tu ne pourras jamais aligner les valeurs de 2008 et de 2009, donc tout
> dépend de ce que tu veux; champ [Daté] ou pas (telle est la question).
>
> A tester ce qui suit :
>
> TRANSFORM First(T3.Montant) AS Valeur
> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
> GROUP BY T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
> PIVOT Year(T3.[Daté]);
>
>
> FidoDido a écrit :
> > Rebonjour Michel_D,
> > ca marche ton code, mais j'ai des clients qui ont des remises en 2008 et
> > 2009, mais la j'ai deux lignes pour le même client, ne serais-ce pas possible
> > de mettre le résultat sur une seul Ligne, car la je me retrouve avec soit un
> > montant dans la colonne 2008 et aucun montant dans la colle 2009.
> >
> > je pensais pas que Access était si compliqué :)
> >
> > "Michel__D" a écrit :
> >
> >> Oui, comme ceci :
> >>
> >> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
> >> FROM Produits INNER JOIN (Clients INNER JOIN Remise
> >> ON Clients.[Clients ID] = Remise.Client)
> >> ON Produits.[Produits ID] = Remise.Produits
> >> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, Remise.Montant
> >> HAVING (((Year([Daté])) 08))
> >> UNION ALL
> >> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, 0, Remise.Montant
> >> FROM Produits INNER JOIN (Clients INNER JOIN Remise
> >> ON Clients.[Clients ID] = Remise.Client)
> >> ON Produits.[Produits ID] = Remise.Produits
> >> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, Remise.Montant
> >> HAVING (((Year([Daté])) 09));
> >>
> >> Ou théoriquement ce qui suit est équivalent (à vérifier) :
> >>
> >> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
> >> T3.Daté, T3.Montant AS 2008, 0 AS 2009
> >> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
> >> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
> >> WHERE Year(T3.[Daté]) 08
> >> UNION
> >> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
> >> T3.Daté, 0, T3.Montant
> >> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
> >> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
> >> WHERE Year(T3.[Daté]) 09;
> >>
> >>
> >> FidoDido a écrit :
> >>> Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
> >>> dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
> >>> que je dois modifier ma requete Union ?
> >>>
> >>> merci
> >>>
> >>> "Michel__D" a écrit :
> >>>
> >>>> Re,
> >>>>
> >>>> Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
> >>>> montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
> >>>> la requête union est une solution tu rajoute un champ fictif correspondant
> >>>> au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
> >>>> le champ 0 AS 2009
> >>>>
> >>>> SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
> >>>>
> >>>> et pour la portion dédié à 2009
> >>>>
> >>>> SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
> >>>>
> >>>> PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
> >>>> modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
> >>>> HAVING et mettre une clause WHERE qui renverrait les enregistrements de
> >>>> l'année concernée.
> >>>>
> >>>> WHERE Year(Remise.Date) 08
> >>>>
> >>>> FidoDido a écrit :
> >>>>> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
> >>>>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >>>>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
> >>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> >>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> >>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> >>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> >>>>> HAVING (((Year([Daté])) 08))
> >>>>> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
> >>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
> >>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> >>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> >>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> >>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> >>>>> HAVING (((Year([Daté])) 09));
> >>>>>
> >>>>>
> >>>>> "Michel__D" a écrit :
> >>>>>
> >>>>>> Bonjour,
> >>>>>>
> >>>>>> FidoDido a écrit :
> >>>>>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
> >>>>>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
> >>>>>>> 1- Remise ID
> >>>>>>> 2- Date
> >>>>>>> 3- Clients
> >>>>>>> 4- Catégorie
> >>>>>>> 5- Produits
> >>>>>>> 6- Montant
> >>>>>>>
> >>>>>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
> >>>>>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
> >>>>>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
> >>>>>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
> >>>>>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
> >>>>>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
> >>>>>>> ne 2009, comment dois-je faire ? merci de votre aide
> >>>>>> Donne le contenu SQL de tes requêtes (SELECT ...)
> >>>>>>
> >>>>>> PS:Une requête union ne semble pas être la solution.
> >>>>>>
>
Tu es un Geni, Genial ca marche, me reste plus qu'a essayer de faire un état
qui va me calcule la différence entre 2009 et 2008.
Merci à Michel_D
"Michel__D" a écrit :
> Re,
>
> Ben avec Access il faut réfléchir un peu plus et donc si tu garde le champ
> [Daté] tu ne pourras jamais aligner les valeurs de 2008 et de 2009, donc tout
> dépend de ce que tu veux; champ [Daté] ou pas (telle est la question).
>
> A tester ce qui suit :
>
> TRANSFORM First(T3.Montant) AS Valeur
> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
> GROUP BY T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits
> PIVOT Year(T3.[Daté]);
>
>
> FidoDido a écrit :
> > Rebonjour Michel_D,
> > ca marche ton code, mais j'ai des clients qui ont des remises en 2008 et
> > 2009, mais la j'ai deux lignes pour le même client, ne serais-ce pas possible
> > de mettre le résultat sur une seul Ligne, car la je me retrouve avec soit un
> > montant dans la colonne 2008 et aucun montant dans la colle 2009.
> >
> > je pensais pas que Access était si compliqué :)
> >
> > "Michel__D" a écrit :
> >
> >> Oui, comme ceci :
> >>
> >> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, Remise.Montant AS 2008, 0 AS 2009
> >> FROM Produits INNER JOIN (Clients INNER JOIN Remise
> >> ON Clients.[Clients ID] = Remise.Client)
> >> ON Produits.[Produits ID] = Remise.Produits
> >> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, Remise.Montant
> >> HAVING (((Year([Daté])) 08))
> >> UNION ALL
> >> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, 0, Remise.Montant
> >> FROM Produits INNER JOIN (Clients INNER JOIN Remise
> >> ON Clients.[Clients ID] = Remise.Client)
> >> ON Produits.[Produits ID] = Remise.Produits
> >> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >> Produits.Produits, Remise.Daté, Remise.Montant
> >> HAVING (((Year([Daté])) 09));
> >>
> >> Ou théoriquement ce qui suit est équivalent (à vérifier) :
> >>
> >> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
> >> T3.Daté, T3.Montant AS 2008, 0 AS 2009
> >> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
> >> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
> >> WHERE Year(T3.[Daté]) 08
> >> UNION
> >> SELECT T2.Société, T2.[Region ID], T1.[Catégorie Produits], T1.Produits,
> >> T3.Daté, 0, T3.Montant
> >> FROM Produits AS T1 INNER JOIN (Clients AS T2 INNER JOIN Remise AS T3
> >> ON T2.[Clients ID] = T3.Client) ON T1.[Produits ID] = T3.Produits
> >> WHERE Year(T3.[Daté]) 09;
> >>
> >>
> >> FidoDido a écrit :
> >>> Merci Michel_D, comment je fait pour ajouter un champ fictif, et es-ce que je
> >>> dois ajouter 2 champ fictif sois pour l'année 2008 et un pour 2009 ? et es-ce
> >>> que je dois modifier ma requete Union ?
> >>>
> >>> merci
> >>>
> >>> "Michel__D" a écrit :
> >>>
> >>>> Re,
> >>>>
> >>>> Vu que tu laisse le champ date cela sous-entend que tu n'auras pas le
> >>>> montant de l'année 2008 sur la même ligne que l'année 2009 et dans ce cas
> >>>> la requête union est une solution tu rajoute un champ fictif correspondant
> >>>> au champ manquant par exemple pour la portion spécifique à 2008 tu rajoute
> >>>> le champ 0 AS 2009
> >>>>
> >>>> SELECT Clients.Société, ... , Remise.Montant AS 2008, 0 AS 2009
> >>>>
> >>>> et pour la portion dédié à 2009
> >>>>
> >>>> SELECT Clients.Société, ... , 0 AS 2008, Remise.Montant AS 2009
> >>>>
> >>>> PS:Comme tu ne réalise pas d'opération sur les enregistrements tu pourrais
> >>>> modifier les requêtes en supprimant la clause GROUP BY ainsi que la clause
> >>>> HAVING et mettre une clause WHERE qui renverrait les enregistrements de
> >>>> l'année concernée.
> >>>>
> >>>> WHERE Year(Remise.Date) 08
> >>>>
> >>>> FidoDido a écrit :
> >>>>> Bonjour Michel_D, voici le code que j'ai dans ma requete Union
> >>>>> SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie Produits],
> >>>>> Produits.Produits, Remise.Daté, Remise.Montant AS 2008
> >>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> >>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> >>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> >>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> >>>>> HAVING (((Year([Daté])) 08))
> >>>>> UNION ALL SELECT Clients.Société, Clients.[Region ID], Produits.[Catégorie
> >>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant AS 2009
> >>>>> FROM Produits INNER JOIN (Clients INNER JOIN Remise ON Clients.[Clients ID]
> >>>>> = Remise.Client) ON Produits.[Produits ID] = Remise.Produits
> >>>>> GROUP BY Clients.Société, Clients.[Region ID], Produits.[Catégorie
> >>>>> Produits], Produits.Produits, Remise.Daté, Remise.Montant
> >>>>> HAVING (((Year([Daté])) 09));
> >>>>>
> >>>>>
> >>>>> "Michel__D" a écrit :
> >>>>>
> >>>>>> Bonjour,
> >>>>>>
> >>>>>> FidoDido a écrit :
> >>>>>>> Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
> >>>>>>> j,ai une table qui s'appele "Remise" qui comporte les champs suivant
> >>>>>>> 1- Remise ID
> >>>>>>> 2- Date
> >>>>>>> 3- Clients
> >>>>>>> 4- Catégorie
> >>>>>>> 5- Produits
> >>>>>>> 6- Montant
> >>>>>>>
> >>>>>>> j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
> >>>>>>> la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
> >>>>>>> a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
> >>>>>>> pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
> >>>>>>> faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
> >>>>>>> il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
> >>>>>>> ne 2009, comment dois-je faire ? merci de votre aide
> >>>>>> Donne le contenu SQL de tes requêtes (SELECT ...)
> >>>>>>
> >>>>>> PS:Une requête union ne semble pas être la solution.
> >>>>>>
>
Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide
Bonjour je suis nouveau ici, et j'ai un problème voici mon problème
j,ai une table qui s'appele "Remise" qui comporte les champs suivant
1- Remise ID
2- Date
3- Clients
4- Catégorie
5- Produits
6- Montant
j'ai créer deux requete qui me sort les ventes pour les années 2008 et 2009,
la je voudrais faire une requête, qui me sortirais un rapport mes champs de 1
a 5 plus le champ 6 je voudrais que l'on vois un champ 2008 et 2009 d'ou je
pourrais faire la différence des ventes entre 2009 et 2008, j'ai essayer de
faire une requete UNION, mais j'ai toujours le même problème, a montant (6)
il me sort juste une clonne alors que je voudrais avoir une colonne 2008 et
ne 2009, comment dois-je faire ? merci de votre aide