Comparaison des ventes

Le
dly268
Bonjour à tous,

J'ai un état basé sur une requête analyse croisée qui affiche mes
ventes par mois et par produit avec un total annuel.
Jusque là tout roule !
J'aimerais ajouter une colonne avec le total annuel des ventes par
produit de l'année précédente (à titre de comparatif). C'est là q=
ue je
sèche pitoyablement. Je n'y arrive pas même en passant par des
requêtes Union.

Quelqu'un aurait - il une piste à me soumettre ?

Merci par avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #19418151
Bonjour,

Il faut trouver les liaisons qui vont te permettre de faire
correspondre tes enregistrements et donc ici cela devrait donner ceci :

SELECT T1.* T2.[TotalAnnéePrécédente]
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnnée] AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 = T2.[ValeurAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());

PS:A adapter bien sur.


a écrit :
Bonjour à tous,

J'ai un état basé sur une requête analyse croisée qui affiche mes
ventes par mois et par produit avec un total annuel.
Jusque là tout roule !
J'aimerais ajouter une colonne avec le total annuel des ventes par
produit de l'année précédente (à titre de comparatif). C'est là que je
sèche pitoyablement. Je n'y arrive pas même en passant par des
requêtes Union.

Quelqu'un aurait - il une piste à me soumettre ?

Merci par avance


dly268
Le #19424371
Merci Michel__D pour cette lumière que je vois du fin fonds de mon
tunnel.

Si je comprends bien, dans ton exemple, il me faudrait un table par
année ?


On 26 mai, 19:40, Michel__D wrote:
Bonjour,

Il faut trouver les liaisons qui vont te permettre de faire
  correspondre tes enregistrements et donc ici cela devrait donner ceci :

SELECT T1.* T2.[TotalAnnéePrécédente]
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnn ée] AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 = T2.[Valeu rAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());

PS:A adapter bien sur.

a écrit :

> Bonjour à tous,

> J'ai un état basé sur une requête analyse croisée qui affiche m es
> ventes par mois et par produit avec un total annuel.
> Jusque là tout roule !
> J'aimerais ajouter une colonne avec le total annuel des ventes par
> produit de l'année précédente (à titre de comparatif). C'est l à que je
> sèche pitoyablement. Je n'y arrive pas même en passant par des
> requêtes Union.

> Quelqu'un aurait - il une piste à me soumettre ?

> Merci par avance


Michel__D
Le #19426311
Bonjour,

Pourquoi diable une table, tu veux faire un calcul, une requête est faite pour cela

[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS .[TotalAnnéePrécédente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];

Enfin un truc de ce style.


Merci Michel__D pour cette lumière que je vois du fin fonds de mon
tunnel.

Si je comprends bien, dans ton exemple, il me faudrait un table par
année ?


On 26 mai, 19:40, Michel__D wrote:
Bonjour,

Il faut trouver les liaisons qui vont te permettre de faire
correspondre tes enregistrements et donc ici cela devrait donner ceci :

SELECT T1.* T2.[TotalAnnéePrécédente]
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnnée] AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 = T2.[ValeurAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());

PS:A adapter bien sur.

a écrit :

> Bonjour à tous,

> J'ai un état basé sur une requête analyse croisée qui affiche mes
> ventes par mois et par produit avec un total annuel.
> Jusque là tout roule !
> J'aimerais ajouter une colonne avec le total annuel des ventes par
> produit de l'année précédente (à titre de comparatif). C'est là que je
> sèche pitoyablement. Je n'y arrive pas même en passant par des
> requêtes Union.

> Quelqu'un aurait - il une piste à me soumettre ?

> Merci par avance


Michel__D
Le #19427761
Comme il y avait des erreurs dans les propositions, voici les corrections :

[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS [TotalAnnéePrécédente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];


SELECT T1.*, T2.[TotalAnnéePrécédente]
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnnée] AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 = T2.[ValeurAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());

PS:A adapter bien sur.


Michel__D a écrit :
Bonjour,

Pourquoi diable une table, tu veux faire un calcul, une requête est
faite pour cela

[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS .[TotalAnnéePrécédente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];

Enfin un truc de ce style.



Merci Michel__D pour cette lumière que je vois du fin fonds de mon
tunnel.

Si je comprends bien, dans ton exemple, il me faudrait un table par
année ?


On 26 mai, 19:40, Michel__D wrote:
Bonjour,

Il faut trouver les liaisons qui vont te permettre de faire
correspondre tes enregistrements et donc ici cela devrait donner ceci :

SELECT T1.* T2.[TotalAnnéePrécédente]
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnnée]
AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 =
T2.[ValeurAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());

PS:A adapter bien sur.

a écrit :

> Bonjour à tous,

> J'ai un état basé sur une requête analyse croisée qui affiche mes
> ventes par mois et par produit avec un total annuel.
> Jusque là tout roule !
> J'aimerais ajouter une colonne avec le total annuel des ventes par
> produit de l'année précédente (à titre de comparatif). C'est là que je
> sèche pitoyablement. Je n'y arrive pas même en passant par des
> requêtes Union.

> Quelqu'un aurait - il une piste à me soumettre ?

> Merci par avance





dly268
Le #19435241
Merci Michel pour ces précisions,

mais comme je ne suis pas un pro de SQL je me permet de te demander :
que représente T1 et T2 dans ton exemple ?



On 27 mai, 19:43, Michel__D wrote:
Comme il y avait des erreurs dans les propositions, voici les corrections :

[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS [TotalAnnéePrécé dente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];

SELECT T1.*, T2.[TotalAnnéePrécédente]
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnn ée] AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 = T2.[Valeu rAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());

PS:A adapter bien sur.

Michel__D a écrit :

> Bonjour,

> Pourquoi diable une table, tu veux faire un calcul, une requête est
> faite pour cela

> [RequêteTotalParAnnée]
> SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS .[TotalAnnéePréc édente]
> FROM LaTable
> GROUP BY IDProduit, [ValeurAnnée];

> Enfin un truc de ce style.

> >
> Merci Michel__D pour cette lumière que je vois du fin fonds de mon
> tunnel.

> Si je comprends bien, dans ton exemple,  il me faudrait un table par
> année ?

> On 26 mai, 19:40, Michel__D > wrote:
>> Bonjour,

>> Il faut trouver les liaisons qui vont te permettre de faire
>> correspondre tes enregistrements et donc ici cela devrait donner ceci :

>> SELECT T1.* T2.[TotalAnnéePrécédente]
>> FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAn née]
>> AS T2
>> ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 =
>> T2.[ValeurAnnée]
>> WHERE T1.[ValeurAnnée] = Year(Date());

>> PS:A adapter bien sur.

>> a écrit :

>> > Bonjour à tous,

>> > J'ai un état basé sur une requête analyse croisée qui affich e mes
>> > ventes par mois et par produit avec un total annuel.
>> > Jusque là tout roule !
>> > J'aimerais ajouter une colonne avec le total annuel des ventes par
>> > produit de l'année précédente (à titre de comparatif). C'est là que je
>> > sèche pitoyablement. Je n'y arrive pas même en passant par des
>> > requêtes Union.

>> > Quelqu'un aurait - il une piste à me soumettre ?

>> > Merci par avance


dly268
Le #19436161
Bonjour Michel

pour la première requête, ok je l'avais faite.
pour la deuxième que representent T1.* et T2.[TotalAnnéePrécédente] ?

merci par avance

On 27 mai, 19:43, Michel__D wrote:
Comme il y avait des erreurs dans les propositions, voici les corrections :

[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS [TotalAnnéePrécé dente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];

SELECT T1.*, T2.
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnn ée] AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 = T2.[Valeu rAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());

PS:A adapter bien sur.

Michel__D a écrit :

> Bonjour,

> Pourquoi diable une table, tu veux faire un calcul, une requête est
> faite pour cela

> [RequêteTotalParAnnée]
> SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS .[TotalAnnéePréc édente]
> FROM LaTable
> GROUP BY IDProduit, [ValeurAnnée];

> Enfin un truc de ce style.

> >
> Merci Michel__D pour cette lumière que je vois du fin fonds de mon
> tunnel.

> Si je comprends bien, dans ton exemple,  il me faudrait un table par
> année ?

> On 26 mai, 19:40, Michel__D > wrote:
>> Bonjour,

>> Il faut trouver les liaisons qui vont te permettre de faire
>> correspondre tes enregistrements et donc ici cela devrait donner ceci :

>> SELECT T1.* T2.[TotalAnnéePrécédente]
>> FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAn née]
>> AS T2
>> ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 =
>> T2.[ValeurAnnée]
>> WHERE T1.[ValeurAnnée] = Year(Date());

>> PS:A adapter bien sur.

>> a écrit :

>> > Bonjour à tous,

>> > J'ai un état basé sur une requête analyse croisée qui affich e mes
>> > ventes par mois et par produit avec un total annuel.
>> > Jusque là tout roule !
>> > J'aimerais ajouter une colonne avec le total annuel des ventes par
>> > produit de l'année précédente (à titre de comparatif). C'est là que je
>> > sèche pitoyablement. Je n'y arrive pas même en passant par des
>> > requêtes Union.

>> > Quelqu'un aurait - il une piste à me soumettre ?

>> > Merci par avance


Michel__D
Le #19437511
Bonjour,

T1, T2 représentent des Alias des tables qu'ils représentent.

Par exemple, on peut écrire :
1)
SELECT LeChamp
FROM LaTable;
ou
2)
SELECT LaTable.LeChamp
FROM LaTable;
ou
3)
SELECT T.LeChamp
FROM LaTable AS T;

Sachant que l'écriture 1) n'est pas toujours possible et donc pour
améliorer la visibilité de la requête il est bien souvent intéressant
d'utiliser l'écriture 3)

Dans mon exemple T1.* représente donc tous les champs (*) de la table
[RequêteAnalyseCroisée] et T2.[TotalAnnéePrécédente] le champ
[TotalAnnéePrécédente] de la table [RequêteTotalParAnnée]

PS:Par contre dés l'instant ou un alias a été spécifié, il faut
obligatoirement le mentionner afin d'identifier la provenance des champs.


a écrit :
Bonjour Michel

pour la première requête, ok je l'avais faite.
pour la deuxième que representent T1.* et T2.[TotalAnnéePrécédente] ?

merci par avance

On 27 mai, 19:43, Michel__D wrote:
Comme il y avait des erreurs dans les propositions, voici les corrections :

[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS [TotalAnnéePrécédente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];

SELECT T1.*, T2.
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnnée] AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 = T2.[ValeurAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());

PS:A adapter bien sur.

Michel__D a écrit :

Bonjour,
Pourquoi diable une table, tu veux faire un calcul, une requête est
faite pour cela
[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS .[TotalAnnéePrécédente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];
Enfin un truc de ce style.

Merci Michel__D pour cette lumière que je vois du fin fonds de mon
tunnel.
Si je comprends bien, dans ton exemple, il me faudrait un table par
année ?
On 26 mai, 19:40, Michel__D wrote:
Bonjour,
Il faut trouver les liaisons qui vont te permettre de faire
correspondre tes enregistrements et donc ici cela devrait donner ceci :
SELECT T1.* T2.[TotalAnnéePrécédente]
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnnée]
AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 >>>> T2.[ValeurAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());
PS:A adapter bien sur.
a écrit :
Bonjour à tous,
J'ai un état basé sur une requête analyse croisée qui affiche mes
ventes par mois et par produit avec un total annuel.
Jusque là tout roule !
J'aimerais ajouter une colonne avec le total annuel des ventes par
produit de l'année précédente (à titre de comparatif). C'est là que je
sèche pitoyablement. Je n'y arrive pas même en passant par des
requêtes Union.
Quelqu'un aurait - il une piste à me soumettre ?
Merci par avance











Michel__D
Le #19437651
Il faut lire

[..]

Dans mon exemple T1.* représente donc tous les champs (*) de la requête
[RequêteAnalyseCroisée] et T2.[TotalAnnéePrécédente] le champ
[TotalAnnéePrécédente] de la requête [RequêteTotalParAnnée]

[..]

Michel__D a écrit :
Bonjour,

T1, T2 représentent des Alias des tables qu'ils représentent.

Par exemple, on peut écrire :
1)
SELECT LeChamp
FROM LaTable;
ou
2)
SELECT LaTable.LeChamp
FROM LaTable;
ou
3)
SELECT T.LeChamp
FROM LaTable AS T;

Sachant que l'écriture 1) n'est pas toujours possible et donc pour
améliorer la visibilité de la requête il est bien souvent intéressant
d'utiliser l'écriture 3)

Dans mon exemple T1.* représente donc tous les champs (*) de la table
[RequêteAnalyseCroisée] et T2.[TotalAnnéePrécédente] le champ
[TotalAnnéePrécédente] de la table [RequêteTotalParAnnée]

PS:Par contre dés l'instant ou un alias a été spécifié, il faut
obligatoirement le mentionner afin d'identifier la provenance des champs.


a écrit :
Bonjour Michel

pour la première requête, ok je l'avais faite.
pour la deuxième que representent T1.* et T2.[TotalAnnéePrécédente] ?

merci par avance

On 27 mai, 19:43, Michel__D wrote:
Comme il y avait des erreurs dans les propositions, voici les
corrections :

[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS [TotalAnnéePrécédente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];

SELECT T1.*, T2.
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnnée]
AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 =
T2.[ValeurAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());

PS:A adapter bien sur.

Michel__D a écrit :

Bonjour,
Pourquoi diable une table, tu veux faire un calcul, une requête est
faite pour cela
[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS
.[TotalAnnéePrécédente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];
Enfin un truc de ce style.

Merci Michel__D pour cette lumière que je vois du fin fonds de mon
tunnel.
Si je comprends bien, dans ton exemple, il me faudrait un table par
année ?
On 26 mai, 19:40, Michel__D wrote:
Bonjour,
Il faut trouver les liaisons qui vont te permettre de faire
correspondre tes enregistrements et donc ici cela devrait donner
ceci :
SELECT T1.* T2.[TotalAnnéePrécédente]
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnnée]
AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 >>>>> T2.[ValeurAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());
PS:A adapter bien sur.
a écrit :
Bonjour à tous,
J'ai un état basé sur une requête analyse croisée qui affiche mes
ventes par mois et par produit avec un total annuel.
Jusque là tout roule !
J'aimerais ajouter une colonne avec le total annuel des ventes par
produit de l'année précédente (à titre de comparatif). C'est là
que je
sèche pitoyablement. Je n'y arrive pas même en passant par des
requêtes Union.
Quelqu'un aurait - il une piste à me soumettre ?
Merci par avance













dly268
Le #19439261
Merci pour ce cours magistral ;)
cependant le résultat avec inner join ne donne que les produits ayant
été vendus sur N et N-1, en essayant avec left join j'ai tous les
produits vendus sur N et les produits N-1 ayant aussi été vendus sur
la période N. Right join me donne le même résultat que Inner join.


On 28 mai, 20:36, Michel__D wrote:
Il faut lire

[..]

Dans mon exemple T1.* représente donc tous les champs (*) de la requê te
  [RequêteAnalyseCroisée] et T2.[TotalAnnéePrécédente] le cha mp
  [TotalAnnéePrécédente] de la requête [RequêteTotalParAnné e]

[..]

Michel__D a écrit :

> Bonjour,

> T1, T2 représentent des Alias des tables qu'ils représentent.

> Par exemple, on peut écrire :
> 1)
> SELECT LeChamp
> FROM LaTable;
> ou
> 2)
> SELECT LaTable.LeChamp
> FROM LaTable;
> ou
> 3)
> SELECT T.LeChamp
> FROM LaTable AS T;

> Sachant que l'écriture 1) n'est pas toujours possible et donc pour
>  améliorer la visibilité de la requête il est bien souvent int éressant
>  d'utiliser l'écriture 3)

> Dans mon exemple T1.* représente donc tous les champs (*) de la table
>  [RequêteAnalyseCroisée] et T2.[TotalAnnéePrécédente] le ch amp
>  [TotalAnnéePrécédente] de la table [RequêteTotalParAnnée]

> PS:Par contre dés l'instant ou un alias a été spécifié, il fa ut
>  obligatoirement le mentionner afin d'identifier la provenance des ch amps.

> a écrit :
>> Bonjour Michel

>> pour la première requête, ok je l'avais faite.
>> pour la deuxième que representent T1.* et T2.[TotalAnnéePrécéd ente] ?

>> merci par avance

>> On 27 mai, 19:43, Michel__D >> wrote:
>>> Comme il y avait des erreurs dans les propositions, voici les
>>> corrections :

>>> [RequêteTotalParAnnée]
>>> SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS [TotalAnnéePré cédente]
>>> FROM LaTable
>>> GROUP BY IDProduit, [ValeurAnnée];

>>> SELECT T1.*, T2.
>>> FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParA nnée]
>>> AS T2
>>> ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 =
>>> T2.[ValeurAnnée]
>>> WHERE T1.[ValeurAnnée] = Year(Date());

>>> PS:A adapter bien sur.

>>> Michel__D a écrit :

>>>> Bonjour,
>>>> Pourquoi diable une table, tu veux faire un calcul, une requête es t
>>>> faite pour cela
>>>> [RequêteTotalParAnnée]
>>>> SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS
>>>> .[TotalAnnéePrécédente]
>>>> FROM LaTable
>>>> GROUP BY IDProduit, [ValeurAnnée];
>>>> Enfin un truc de ce style.
>>>> >>>>
>>>> Merci Michel__D pour cette lumière que je vois du fin fonds de mon
>>>> tunnel.
>>>> Si je comprends bien, dans ton exemple,  il me faudrait un table p ar
>>>> année ?
>>>> On 26 mai, 19:40, Michel__D >>>> wrote:
>>>>> Bonjour,
>>>>> Il faut trouver les liaisons qui vont te permettre de faire
>>>>> correspondre tes enregistrements et donc ici cela devrait donner
>>>>> ceci :
>>>>> SELECT T1.* T2.[TotalAnnéePrécédente]
>>>>> FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalPa rAnnée]
>>>>> AS T2
>>>>> ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 =
>>>>> T2.[ValeurAnnée]
>>>>> WHERE T1.[ValeurAnnée] = Year(Date());
>>>>> PS:A adapter bien sur.
>>>>> a écrit :
>>>>>> Bonjour à tous,
>>>>>> J'ai un état basé sur une requête analyse croisée qui affi che mes
>>>>>> ventes par mois et par produit avec un total annuel.
>>>>>> Jusque là tout roule !
>>>>>> J'aimerais ajouter une colonne avec le total annuel des ventes par
>>>>>> produit de l'année précédente (à titre de comparatif). C'e st là
>>>>>> que je
>>>>>> sèche pitoyablement. Je n'y arrive pas même en passant par des
>>>>>> requêtes Union.
>>>>>> Quelqu'un aurait - il une piste à me soumettre ?
>>>>>> Merci par avance


Michel__D
Le #19444751
Bonjour,

La question est, quel résultat veux-tu ?


a écrit :
Merci pour ce cours magistral ;)
cependant le résultat avec inner join ne donne que les produits ayant
été vendus sur N et N-1, en essayant avec left join j'ai tous les
produits vendus sur N et les produits N-1 ayant aussi été vendus sur
la période N. Right join me donne le même résultat que Inner join.


On 28 mai, 20:36, Michel__D wrote:
Il faut lire

[..]

Dans mon exemple T1.* représente donc tous les champs (*) de la requête
[RequêteAnalyseCroisée] et T2.[TotalAnnéePrécédente] le champ
[TotalAnnéePrécédente] de la requête [RequêteTotalParAnnée]

[..]

Michel__D a écrit :

Bonjour,
T1, T2 représentent des Alias des tables qu'ils représentent.
Par exemple, on peut écrire :
1)
SELECT LeChamp
FROM LaTable;
ou
2)
SELECT LaTable.LeChamp
FROM LaTable;
ou
3)
SELECT T.LeChamp
FROM LaTable AS T;
Sachant que l'écriture 1) n'est pas toujours possible et donc pour
améliorer la visibilité de la requête il est bien souvent intéressant
d'utiliser l'écriture 3)
Dans mon exemple T1.* représente donc tous les champs (*) de la table
[RequêteAnalyseCroisée] et T2.[TotalAnnéePrécédente] le champ
[TotalAnnéePrécédente] de la table [RequêteTotalParAnnée]
PS:Par contre dés l'instant ou un alias a été spécifié, il faut
obligatoirement le mentionner afin d'identifier la provenance des champs.
a écrit :
Bonjour Michel
pour la première requête, ok je l'avais faite.
pour la deuxième que representent T1.* et T2.[TotalAnnéePrécédente] ?
merci par avance
On 27 mai, 19:43, Michel__D wrote:
Comme il y avait des erreurs dans les propositions, voici les
corrections :
[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS [TotalAnnéePrécédente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];
SELECT T1.*, T2.
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnnée]
AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 >>>>> T2.[ValeurAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());
PS:A adapter bien sur.
Michel__D a écrit :
Bonjour,
Pourquoi diable une table, tu veux faire un calcul, une requête est
faite pour cela
[RequêteTotalParAnnée]
SELECT IDProduit, [ValeurAnnée], SUM(Montant) AS
.[TotalAnnéePrécédente]
FROM LaTable
GROUP BY IDProduit, [ValeurAnnée];
Enfin un truc de ce style.

Merci Michel__D pour cette lumière que je vois du fin fonds de mon
tunnel.
Si je comprends bien, dans ton exemple, il me faudrait un table par
année ?
On 26 mai, 19:40, Michel__D wrote:
Bonjour,
Il faut trouver les liaisons qui vont te permettre de faire
correspondre tes enregistrements et donc ici cela devrait donner
ceci :
SELECT T1.* T2.[TotalAnnéePrécédente]
FROM [RequêteAnalyseCroisée] AS T1 INNER JOIN [RequêteTotalParAnnée]
AS T2
ON T1.IDproduit = T2.IDproduit And T1.[ValeurAnnée] - 1 >>>>>>> T2.[ValeurAnnée]
WHERE T1.[ValeurAnnée] = Year(Date());
PS:A adapter bien sur.
a écrit :
Bonjour à tous,
J'ai un état basé sur une requête analyse croisée qui affiche mes
ventes par mois et par produit avec un total annuel.
Jusque là tout roule !
J'aimerais ajouter une colonne avec le total annuel des ventes par
produit de l'année précédente (à titre de comparatif). C'est là
que je
sèche pitoyablement. Je n'y arrive pas même en passant par des
requêtes Union.
Quelqu'un aurait - il une piste à me soumettre ?
Merci par avance

















Publicité
Poster une réponse
Anonyme