Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Requête

13 réponses
Avatar
NewsMic
Bonjour,

J'ai une table des "Clients" (et prospects) et une table des "Commandes".
Un client a déjà passé au moins une commande, un prospect aucune et n'est
donc pas dans la table "Commandes".
Comment obtenir un tableau qui me donne la répartition clients/prospects
avec les quantités de nouveaux clients par mois (sur 24 mois) ?
(Un nouveau client étant défini par sa date de 1ère commande)
Merci

NewsMic

3 réponses

1 2
Avatar
Michel__D
re,

Tu as bien ceci en mode SQL :

TRANSFORM Count([Numéro client]) AS NbClient
SELECT Year([1ereFacture]) AS Annee
FROM [LaRequetePrecedente]
GROUP BY Year([1ereFacture])
PIVOT Format([1ereFacture],"mmm") In
("janv","févr","mars","avr","mai","juin","juil","août","sept","oct","nov","déc");

PS: La [LaRequetePrecedente] est celle-ci (à adapter éventuellement) :

SELECT [Numéro client], Min([Date facture]) AS 1ereFacture
FROM [Ventes_Clients]
WHERE (([Numéro Facture]) Is Not Null)
GROUP BY [Numéro client];

PS:Une fois que ceci fonctionnera on s'occupera des 24 mois.


NewsMic a écrit :
Bonjour,

J'ai tout supprimé et je suis reparti à zéro.
J'ai créé la requête que tu me proposes ci-dessous. ok. La voici
SELECT [Numéro client], Min([Date facture]) AS 1ereFacture
FROM Ventes_Clients
WHERE (([Numéro Facture]) Is Not Null)
GROUP BY [Numéro client];

Mais l'analyse croisée m'est refusée car en mode création, la case Numéro
Facture n'est pas cochée à cause de la condition WHERE. Si je la coche, la
requête ne fonctionne pas. Ca donne un message qui dit en résumé soit c'est
'Où', soit c'est la case cochée, mais pas les 2 en même temps.
Comme il ne reste plus que 2 champs cochés, le message à la création de
l'analyse croisée est :
"La table/requête sélectionnée ne contient pas assez de champs pour fournir
des données à une requête d'analyse croisée. Sélectionnez une table/requête
avec au moins 3 champs de type numérique, date ou texte."

Question sur ton SQL de l'analyse croisée : je dois remonter sur 24 mois,
est ce que l'option 'year' avec les mois va bien distinguer les mois de
chaque année ?

Merci aussi aux autres réponses.

NewsMic


"Michel__D" a écrit dans le message de
news:
Bonjour,

Pourquoi veux-tu insérer ce nouveau champ dans ta requête ?

SELECT [Numéro client], Min([Date facture]) AS 1ereFacture
FROM Ventes_Clients
WHERE ([Numéro Facture] Is Not Null)
GROUP BY [Numéro client];

Ensuite tu fais la requête d'analyse croisée par rapport à cette requête.

TRANSFORM Count([Numéro client]) AS NbClient
SELECT Year([1ereFacture]) AS Annee
FROM LaRequetePrecedente
GROUP BY Year([1ereFacture])
PIVOT Format([1ereFacture],"mmm") In
("janv","févr","mars","avr","mai","juin","juil","août","sept","oct","nov","déc");






Avatar
NewsMic
Créer une analyse crosée à partir de la requête est impossible car il n'y a
que 2 champs.
J'ai copier/coller ta requête croisée commençant par TRANSFORM et finissant
par les mois de l'année.
J'ai créé une requête simple que j'ai édité en mode SQL et j'y ai copié ta
requête croisée.
Elle fonctionne parfaitement : j'ai le total par mois en colonne et par
année sur les lignes.
Mais je ne peux pas l'enregistrer, j'ai le message :
"Vous devez entrer Regroupement dans la ligne Opération lorsque vous entrez
En-tête de colonne dans la ligne Table de requête croisée"

NewsMic

"Michel__D" a écrit dans le message de
news: %
re,

Tu as bien ceci en mode SQL :

TRANSFORM Count([Numéro client]) AS NbClient
SELECT Year([1ereFacture]) AS Annee
FROM [LaRequetePrecedente]
GROUP BY Year([1ereFacture])
PIVOT Format([1ereFacture],"mmm") In

("janv","févr","mars","avr","mai","juin","juil","août","sept","oct","nov","déc");

PS: La [LaRequetePrecedente] est celle-ci (à adapter éventuellement) :

SELECT [Numéro client], Min([Date facture]) AS 1ereFacture
FROM [Ventes_Clients]
WHERE (([Numéro Facture]) Is Not Null)
GROUP BY [Numéro client];

PS:Une fois que ceci fonctionnera on s'occupera des 24 mois.


NewsMic a écrit :
Bonjour,

J'ai tout supprimé et je suis reparti à zéro.
J'ai créé la requête que tu me proposes ci-dessous. ok. La voici
SELECT [Numéro client], Min([Date facture]) AS 1ereFacture
FROM Ventes_Clients
WHERE (([Numéro Facture]) Is Not Null)
GROUP BY [Numéro client];

Mais l'analyse croisée m'est refusée car en mode création, la case Numéro
Facture n'est pas cochée à cause de la condition WHERE. Si je la coche,
la requête ne fonctionne pas. Ca donne un message qui dit en résumé soit
c'est 'Où', soit c'est la case cochée, mais pas les 2 en même temps.
Comme il ne reste plus que 2 champs cochés, le message à la création de
l'analyse croisée est :
"La table/requête sélectionnée ne contient pas assez de champs pour
fournir des données à une requête d'analyse croisée. Sélectionnez une
table/requête avec au moins 3 champs de type numérique, date ou texte."

Question sur ton SQL de l'analyse croisée : je dois remonter sur 24 mois,
est ce que l'option 'year' avec les mois va bien distinguer les mois de
chaque année ?

Merci aussi aux autres réponses.

NewsMic


"Michel__D" a écrit dans le message
de news:
Bonjour,

Pourquoi veux-tu insérer ce nouveau champ dans ta requête ?

SELECT [Numéro client], Min([Date facture]) AS 1ereFacture
FROM Ventes_Clients
WHERE ([Numéro Facture] Is Not Null)
GROUP BY [Numéro client];

Ensuite tu fais la requête d'analyse croisée par rapport à cette
requête.

TRANSFORM Count([Numéro client]) AS NbClient
SELECT Year([1ereFacture]) AS Annee
FROM LaRequetePrecedente
GROUP BY Year([1ereFacture])
PIVOT Format([1ereFacture],"mmm") In
("janv","févr","mars","avr","mai","juin","juil","août","sept","oct","nov","déc");









Avatar
Michel_D
Ben avec Access d'office 2K il n'y a aucun problème, mais l'on va travailler
sur les 24 mois essaye ce qui suit :

Soit la la requête nommée "LaRequetePrecedente" :
SELECT "L1" AS Ch1, [Numéro client], Min([Date facture]) AS 1ereFacture
FROM [Ventes_Clients]
WHERE ([Numéro Facture] Is Not Null)
And ([Date facture]>ÚteSerial(Year(Date())-2,Month(Date())+1,1))
GROUP BY [Numéro client];

Et voici la requête d'analyse croisée :

TRANSFORM Count([Numéro client]) AS NbClient
SELECT Ch1
FROM [LaRequetePrecedente]
GROUP BY Ch1
PIVOT Format([1ereFacture],"yyyy-mm");



"NewsMic" a écrit dans le message de news:488794f6$0$937$
Créer une analyse crosée à partir de la requête est impossible car il n'y a
que 2 champs.
J'ai copier/coller ta requête croisée commençant par TRANSFORM et finissant
par les mois de l'année.
J'ai créé une requête simple que j'ai édité en mode SQL et j'y ai copié ta
requête croisée.
Elle fonctionne parfaitement : j'ai le total par mois en colonne et par
année sur les lignes.
Mais je ne peux pas l'enregistrer, j'ai le message :
"Vous devez entrer Regroupement dans la ligne Opération lorsque vous entrez
En-tête de colonne dans la ligne Table de requête croisée"

NewsMic

"Michel__D" a écrit dans le message de
news: %
> re,
>
> Tu as bien ceci en mode SQL :
>
> TRANSFORM Count([Numéro client]) AS NbClient
> SELECT Year([1ereFacture]) AS Annee
> FROM [LaRequetePrecedente]
> GROUP BY Year([1ereFacture])
> PIVOT Format([1ereFacture],"mmm") In
>
> ("janv","févr","mars","avr","mai","juin","juil","août","sept","oct","nov","déc");
>
> PS: La [LaRequetePrecedente] est celle-ci (à adapter éventuellement) :
>
> SELECT [Numéro client], Min([Date facture]) AS 1ereFacture
> FROM [Ventes_Clients]
> WHERE (([Numéro Facture]) Is Not Null)
> GROUP BY [Numéro client];
>
> PS:Une fois que ceci fonctionnera on s'occupera des 24 mois.
>
>
> NewsMic a écrit :
>> Bonjour,
>>
>> J'ai tout supprimé et je suis reparti à zéro.
>> J'ai créé la requête que tu me proposes ci-dessous. ok. La voici
>> SELECT [Numéro client], Min([Date facture]) AS 1ereFacture
>> FROM Ventes_Clients
>> WHERE (([Numéro Facture]) Is Not Null)
>> GROUP BY [Numéro client];
>>
>> Mais l'analyse croisée m'est refusée car en mode création, la case Numéro
>> Facture n'est pas cochée à cause de la condition WHERE. Si je la coche,
>> la requête ne fonctionne pas. Ca donne un message qui dit en résumé soit
>> c'est 'Où', soit c'est la case cochée, mais pas les 2 en même temps.
>> Comme il ne reste plus que 2 champs cochés, le message à la création de
>> l'analyse croisée est :
>> "La table/requête sélectionnée ne contient pas assez de champs pour
>> fournir des données à une requête d'analyse croisée. Sélectionnez une
>> table/requête avec au moins 3 champs de type numérique, date ou texte."
>>
>> Question sur ton SQL de l'analyse croisée : je dois remonter sur 24 mois,
>> est ce que l'option 'year' avec les mois va bien distinguer les mois de
>> chaque année ?
>>
>> Merci aussi aux autres réponses.
>>
>> NewsMic
>>
>>
>> "Michel__D" a écrit dans le message
>> de news:
>>> Bonjour,
>>>
>>> Pourquoi veux-tu insérer ce nouveau champ dans ta requête ?
>>>
>>> SELECT [Numéro client], Min([Date facture]) AS 1ereFacture
>>> FROM Ventes_Clients
>>> WHERE ([Numéro Facture] Is Not Null)
>>> GROUP BY [Numéro client];
>>>
>>> Ensuite tu fais la requête d'analyse croisée par rapport à cette
>>> requête.
>>>
>>> TRANSFORM Count([Numéro client]) AS NbClient
>>> SELECT Year([1ereFacture]) AS Annee
>>> FROM LaRequetePrecedente
>>> GROUP BY Year([1ereFacture])
>>> PIVOT Format([1ereFacture],"mmm") In
>>> ("janv","févr","mars","avr","mai","juin","juil","août","sept","oct","nov","déc");
>>
>>
>




1 2