une table societe dans laquelle le niveau_societe indique prospect ou client
une table utilisateurs (commerciaux)
chaque société est affecté à un commercial
une table devis
chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then
COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect],
case when Table_Societe.Niveau_Societe BETWEEN 10 AND 30
then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client],
Table_Utilisateur.Prenom_Utilisateur +
' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial
FROM Table_Devis INNER JOIN
Table_Utilisateur ON Table_Devis.Code_Utilisateur =
Table_Utilisateur.Code_Utilisateur INNER JOIN
Table_Personne ON Table_Devis.Code_Personne =
Table_Personne.Code_Personne INNER JOIN
Table_Societe ON Table_Personne.Code_Societe =
Table_Societe.Code_Societe
GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' +
Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur
ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel :
La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste de
sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou
dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total des
devis clients de l'autre regroupé par commercial en sachant que les sociétés
sont dans la meme table ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre Goiffon
lefevre wrote:
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou client une table utilisateurs (commerciaux) chaque société est affecté à un commercial une table devis chaque devis est affecté à un commercial
(...)
donc comment compter le total des devis prospects d'un coté et le total des devis clients de l'autre regroupé par commercial en sachant que les sociétés sont dans la meme table ?
Utiliser 2 fois la table société dans le from ? Une fois pour les sociétés clientes, une fois pour les sociétés prospects ?
lefevre wrote:
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou client
une table utilisateurs (commerciaux)
chaque société est affecté à un commercial
une table devis
chaque devis est affecté à un commercial
(...)
donc comment compter le total des devis prospects d'un coté et le total des
devis clients de l'autre regroupé par commercial en sachant que les sociétés
sont dans la meme table ?
Utiliser 2 fois la table société dans le from ? Une fois pour les
sociétés clientes, une fois pour les sociétés prospects ?
une table societe dans laquelle le niveau_societe indique prospect ou client une table utilisateurs (commerciaux) chaque société est affecté à un commercial une table devis chaque devis est affecté à un commercial
(...)
donc comment compter le total des devis prospects d'un coté et le total des devis clients de l'autre regroupé par commercial en sachant que les sociétés sont dans la meme table ?
Utiliser 2 fois la table société dans le from ? Une fois pour les sociétés clientes, une fois pour les sociétés prospects ?
lefevre
désolé mais je ne suis pas sur d'avoir bien compris le truc
des precisions ?
merci
Utiliser 2 fois la table société dans le from ? Une fois pour les sociétés clientes, une fois pour les sociétés prospects ?
désolé mais je ne suis pas sur d'avoir bien compris le truc
des precisions ?
merci
Utiliser 2 fois la table société dans le from ? Une fois pour les sociétés
clientes, une fois pour les sociétés prospects ?
désolé mais je ne suis pas sur d'avoir bien compris le truc
des precisions ?
merci
Utiliser 2 fois la table société dans le from ? Une fois pour les sociétés clientes, une fois pour les sociétés prospects ?
bruno reiter [MVP]
peut etre qqchose comme :
SELECT COUNT(case when TS.Niveau_Societe BETWEEN 1 AND 9 then TD.Code_Devis end) AS [Qté devis prospect], COUNT(case when TS.Niveau_Societe BETWEEN 10 AND 30 then TD.Code_Devis) end AS [Qté devis Client], TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial FROM Table_Devis TD INNER JOIN Table_Utilisateur TU ON TD.Code_Utilisateur = TU.Code_Utilisateur INNER JOIN Table_Personne TP ON TD.Code_Personne = TP.Code_Personne INNER JOIN Table_Societe TS ON TP.Code_Societe = TS.Code_Societe GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur ORDER BY TU.Prenom_Utilisateur
br
"lefevre" wrote in message news:4276b506$0$8209$
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou client une table utilisateurs (commerciaux) chaque société est affecté à un commercial une table devis chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect], case when Table_Societe.Niveau_Societe BETWEEN 10 AND 30 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client], Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial FROM Table_Devis INNER JOIN Table_Utilisateur ON Table_Devis.Code_Utilisateur = Table_Utilisateur.Code_Utilisateur INNER JOIN Table_Personne ON Table_Devis.Code_Personne = Table_Personne.Code_Personne INNER JOIN Table_Societe ON Table_Personne.Code_Societe = Table_Societe.Code_Societe GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel : La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total des devis clients de l'autre regroupé par commercial en sachant que les sociétés sont dans la meme table ?
je ne sais pas si je suis assez clair ?
merci.
peut etre qqchose comme :
SELECT COUNT(case when TS.Niveau_Societe BETWEEN 1 AND 9
then TD.Code_Devis end) AS [Qté devis prospect],
COUNT(case when TS.Niveau_Societe BETWEEN 10 AND 30
then TD.Code_Devis) end AS [Qté devis Client],
TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial
FROM Table_Devis TD
INNER JOIN Table_Utilisateur TU
ON TD.Code_Utilisateur = TU.Code_Utilisateur
INNER JOIN Table_Personne TP
ON TD.Code_Personne = TP.Code_Personne
INNER JOIN Table_Societe TS
ON TP.Code_Societe = TS.Code_Societe
GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur
ORDER BY TU.Prenom_Utilisateur
br
"lefevre" <lefevre@free.fr> wrote in message
news:4276b506$0$8209$636a15ce@news.free.fr...
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou
client
une table utilisateurs (commerciaux)
chaque société est affecté à un commercial
une table devis
chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then
COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect],
case when Table_Societe.Niveau_Societe BETWEEN 10 AND 30
then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client],
Table_Utilisateur.Prenom_Utilisateur +
' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial
FROM Table_Devis INNER JOIN
Table_Utilisateur ON Table_Devis.Code_Utilisateur =
Table_Utilisateur.Code_Utilisateur INNER JOIN
Table_Personne ON Table_Devis.Code_Personne =
Table_Personne.Code_Personne INNER JOIN
Table_Societe ON Table_Personne.Code_Societe =
Table_Societe.Code_Societe
GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' +
Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur
ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel :
La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste
de sélection parce qu'elle n'est pas contenue dans une fonction
d'agrégation ou dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total
des devis clients de l'autre regroupé par commercial en sachant que les
sociétés sont dans la meme table ?
SELECT COUNT(case when TS.Niveau_Societe BETWEEN 1 AND 9 then TD.Code_Devis end) AS [Qté devis prospect], COUNT(case when TS.Niveau_Societe BETWEEN 10 AND 30 then TD.Code_Devis) end AS [Qté devis Client], TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial FROM Table_Devis TD INNER JOIN Table_Utilisateur TU ON TD.Code_Utilisateur = TU.Code_Utilisateur INNER JOIN Table_Personne TP ON TD.Code_Personne = TP.Code_Personne INNER JOIN Table_Societe TS ON TP.Code_Societe = TS.Code_Societe GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur ORDER BY TU.Prenom_Utilisateur
br
"lefevre" wrote in message news:4276b506$0$8209$
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou client une table utilisateurs (commerciaux) chaque société est affecté à un commercial une table devis chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect], case when Table_Societe.Niveau_Societe BETWEEN 10 AND 30 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client], Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial FROM Table_Devis INNER JOIN Table_Utilisateur ON Table_Devis.Code_Utilisateur = Table_Utilisateur.Code_Utilisateur INNER JOIN Table_Personne ON Table_Devis.Code_Personne = Table_Personne.Code_Personne INNER JOIN Table_Societe ON Table_Personne.Code_Societe = Table_Societe.Code_Societe GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel : La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total des devis clients de l'autre regroupé par commercial en sachant que les sociétés sont dans la meme table ?
je ne sais pas si je suis assez clair ?
merci.
Oxiane
Bonjour,
C'est toujours un peu compliqué de créer des tableaux coisés avec un seul ordre sql.
Je n'ai pas repris votre modèle, mais l'ordre suivant peut vous metre sur la voie :
select personne, sum(cpt10) as cpt10,sum(cpt20) as cpt20 from (
select personne, count(niveau) as cpt10 ,0 as cpt20 from com where niveau between 10 and 19 group by personne
union
select personne, 0 as cpt10, count(niveau) as cpt20 from com where niveau between 20 and 29 group by personne ) recap
group by personne
Compris l'idée ?
la "ruse" repose sur le
select count(condition1) , 0 where condition1
union
select 0 , count(condition2) , where condition2
et faire un group by
-- Cordialement
Oxiane ---------------------------------------------------------- Omnia vanitas
"lefevre" a écrit dans le message de news:4276b506$0$8209$
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou
client
une table utilisateurs (commerciaux) chaque société est affecté à un commercial une table devis chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect], case when Table_Societe.Niveau_Societe BETWEEN 10 AND
30
then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client], Table_Utilisateur.Prenom_Utilisateur
+
' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial FROM Table_Devis INNER JOIN Table_Utilisateur ON Table_Devis.Code_Utilisateur > Table_Utilisateur.Code_Utilisateur INNER JOIN Table_Personne ON Table_Devis.Code_Personne > Table_Personne.Code_Personne INNER JOIN Table_Societe ON Table_Personne.Code_Societe > Table_Societe.Code_Societe GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel : La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste
de
sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation
ou
dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total
des
devis clients de l'autre regroupé par commercial en sachant que les
sociétés
sont dans la meme table ?
je ne sais pas si je suis assez clair ?
merci.
Bonjour,
C'est toujours un peu compliqué de créer des tableaux coisés avec un seul
ordre sql.
Je n'ai pas repris votre modèle, mais l'ordre suivant peut vous metre sur la
voie :
select personne, sum(cpt10) as cpt10,sum(cpt20) as cpt20
from (
select personne, count(niveau) as cpt10 ,0 as cpt20
from com
where niveau between 10 and 19
group by personne
union
select personne, 0 as cpt10, count(niveau) as cpt20
from com
where niveau between 20 and 29
group by personne
) recap
group by personne
Compris l'idée ?
la "ruse" repose sur le
select count(condition1) , 0 where condition1
union
select 0 , count(condition2) , where condition2
et faire un group by
--
Cordialement
Oxiane
----------------------------------------------------------
Omnia vanitas
"lefevre" <lefevre@free.fr> a écrit dans le message de
news:4276b506$0$8209$636a15ce@news.free.fr...
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou
client
une table utilisateurs (commerciaux)
chaque société est affecté à un commercial
une table devis
chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then
COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect],
case when Table_Societe.Niveau_Societe BETWEEN 10 AND
30
then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client],
Table_Utilisateur.Prenom_Utilisateur
+
' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial
FROM Table_Devis INNER JOIN
Table_Utilisateur ON Table_Devis.Code_Utilisateur > Table_Utilisateur.Code_Utilisateur INNER JOIN
Table_Personne ON Table_Devis.Code_Personne > Table_Personne.Code_Personne INNER JOIN
Table_Societe ON Table_Personne.Code_Societe > Table_Societe.Code_Societe
GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' +
Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur
ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel :
La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste
de
sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation
ou
dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total
des
devis clients de l'autre regroupé par commercial en sachant que les
C'est toujours un peu compliqué de créer des tableaux coisés avec un seul ordre sql.
Je n'ai pas repris votre modèle, mais l'ordre suivant peut vous metre sur la voie :
select personne, sum(cpt10) as cpt10,sum(cpt20) as cpt20 from (
select personne, count(niveau) as cpt10 ,0 as cpt20 from com where niveau between 10 and 19 group by personne
union
select personne, 0 as cpt10, count(niveau) as cpt20 from com where niveau between 20 and 29 group by personne ) recap
group by personne
Compris l'idée ?
la "ruse" repose sur le
select count(condition1) , 0 where condition1
union
select 0 , count(condition2) , where condition2
et faire un group by
-- Cordialement
Oxiane ---------------------------------------------------------- Omnia vanitas
"lefevre" a écrit dans le message de news:4276b506$0$8209$
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou
client
une table utilisateurs (commerciaux) chaque société est affecté à un commercial une table devis chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect], case when Table_Societe.Niveau_Societe BETWEEN 10 AND
30
then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client], Table_Utilisateur.Prenom_Utilisateur
+
' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial FROM Table_Devis INNER JOIN Table_Utilisateur ON Table_Devis.Code_Utilisateur > Table_Utilisateur.Code_Utilisateur INNER JOIN Table_Personne ON Table_Devis.Code_Personne > Table_Personne.Code_Personne INNER JOIN Table_Societe ON Table_Personne.Code_Societe > Table_Societe.Code_Societe GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel : La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste
de
sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation
ou
dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total
des
devis clients de l'autre regroupé par commercial en sachant que les
sociétés
sont dans la meme table ?
je ne sais pas si je suis assez clair ?
merci.
bruno reiter [MVP]
un peu vite répondu, peut etre ça :
SELECT SUM(case when TS.Niveau_Societe BETWEEN 1 AND 9 then 1 else 0 end) AS [Qté devis prospect], SUM(case when TS.Niveau_Societe BETWEEN 10 AND 30 then 1 else 0 end) AS [Qté devis Client], TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial FROM Table_Devis TD INNER JOIN Table_Utilisateur TU ON TD.Code_Utilisateur = TU.Code_Utilisateur INNER JOIN Table_Personne TP ON TD.Code_Personne = TP.Code_Personne INNER JOIN Table_Societe TS ON TP.Code_Societe = TS.Code_Societe GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur ORDER BY TU.Prenom_Utilisateur
br
"bruno reiter [MVP]" <remove.this! wrote in message news:
peut etre qqchose comme :
SELECT COUNT(case when TS.Niveau_Societe BETWEEN 1 AND 9 then TD.Code_Devis end) AS [Qté devis prospect], COUNT(case when TS.Niveau_Societe BETWEEN 10 AND 30 then TD.Code_Devis) end AS [Qté devis Client], TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial FROM Table_Devis TD INNER JOIN Table_Utilisateur TU ON TD.Code_Utilisateur = TU.Code_Utilisateur INNER JOIN Table_Personne TP ON TD.Code_Personne = TP.Code_Personne INNER JOIN Table_Societe TS ON TP.Code_Societe = TS.Code_Societe GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur ORDER BY TU.Prenom_Utilisateur
br
"lefevre" wrote in message news:4276b506$0$8209$
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou client une table utilisateurs (commerciaux) chaque société est affecté à un commercial une table devis chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect], case when Table_Societe.Niveau_Societe BETWEEN 10 AND 30 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client], Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial FROM Table_Devis INNER JOIN Table_Utilisateur ON Table_Devis.Code_Utilisateur = Table_Utilisateur.Code_Utilisateur INNER JOIN Table_Personne ON Table_Devis.Code_Personne = Table_Personne.Code_Personne INNER JOIN Table_Societe ON Table_Personne.Code_Societe = Table_Societe.Code_Societe GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel : La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total des devis clients de l'autre regroupé par commercial en sachant que les sociétés sont dans la meme table ?
je ne sais pas si je suis assez clair ?
merci.
un peu vite répondu, peut etre ça :
SELECT SUM(case when TS.Niveau_Societe BETWEEN 1 AND 9
then 1 else 0 end) AS [Qté devis prospect],
SUM(case when TS.Niveau_Societe BETWEEN 10 AND 30
then 1 else 0 end) AS [Qté devis Client],
TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial
FROM Table_Devis TD
INNER JOIN Table_Utilisateur TU
ON TD.Code_Utilisateur = TU.Code_Utilisateur
INNER JOIN Table_Personne TP
ON TD.Code_Personne = TP.Code_Personne
INNER JOIN Table_Societe TS
ON TP.Code_Societe = TS.Code_Societe
GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur
ORDER BY TU.Prenom_Utilisateur
br
"bruno reiter [MVP]" <remove.this!.br33@bol.com.br> wrote in message
news:eicxmi9TFHA.2520@TK2MSFTNGP09.phx.gbl...
peut etre qqchose comme :
SELECT COUNT(case when TS.Niveau_Societe BETWEEN 1 AND 9
then TD.Code_Devis end) AS [Qté devis prospect],
COUNT(case when TS.Niveau_Societe BETWEEN 10 AND 30
then TD.Code_Devis) end AS [Qté devis Client],
TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial
FROM Table_Devis TD
INNER JOIN Table_Utilisateur TU
ON TD.Code_Utilisateur = TU.Code_Utilisateur
INNER JOIN Table_Personne TP
ON TD.Code_Personne = TP.Code_Personne
INNER JOIN Table_Societe TS
ON TP.Code_Societe = TS.Code_Societe
GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur
ORDER BY TU.Prenom_Utilisateur
br
"lefevre" <lefevre@free.fr> wrote in message
news:4276b506$0$8209$636a15ce@news.free.fr...
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou
client
une table utilisateurs (commerciaux)
chaque société est affecté à un commercial
une table devis
chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then
COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect],
case when Table_Societe.Niveau_Societe BETWEEN 10 AND
30 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client],
Table_Utilisateur.Prenom_Utilisateur
+ ' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial
FROM Table_Devis INNER JOIN
Table_Utilisateur ON Table_Devis.Code_Utilisateur =
Table_Utilisateur.Code_Utilisateur INNER JOIN
Table_Personne ON Table_Devis.Code_Personne =
Table_Personne.Code_Personne INNER JOIN
Table_Societe ON Table_Personne.Code_Societe =
Table_Societe.Code_Societe
GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' +
Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur
ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel :
La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste
de sélection parce qu'elle n'est pas contenue dans une fonction
d'agrégation ou dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total
des devis clients de l'autre regroupé par commercial en sachant que les
sociétés sont dans la meme table ?
SELECT SUM(case when TS.Niveau_Societe BETWEEN 1 AND 9 then 1 else 0 end) AS [Qté devis prospect], SUM(case when TS.Niveau_Societe BETWEEN 10 AND 30 then 1 else 0 end) AS [Qté devis Client], TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial FROM Table_Devis TD INNER JOIN Table_Utilisateur TU ON TD.Code_Utilisateur = TU.Code_Utilisateur INNER JOIN Table_Personne TP ON TD.Code_Personne = TP.Code_Personne INNER JOIN Table_Societe TS ON TP.Code_Societe = TS.Code_Societe GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur ORDER BY TU.Prenom_Utilisateur
br
"bruno reiter [MVP]" <remove.this! wrote in message news:
peut etre qqchose comme :
SELECT COUNT(case when TS.Niveau_Societe BETWEEN 1 AND 9 then TD.Code_Devis end) AS [Qté devis prospect], COUNT(case when TS.Niveau_Societe BETWEEN 10 AND 30 then TD.Code_Devis) end AS [Qté devis Client], TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial FROM Table_Devis TD INNER JOIN Table_Utilisateur TU ON TD.Code_Utilisateur = TU.Code_Utilisateur INNER JOIN Table_Personne TP ON TD.Code_Personne = TP.Code_Personne INNER JOIN Table_Societe TS ON TP.Code_Societe = TS.Code_Societe GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur ORDER BY TU.Prenom_Utilisateur
br
"lefevre" wrote in message news:4276b506$0$8209$
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou client une table utilisateurs (commerciaux) chaque société est affecté à un commercial une table devis chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect], case when Table_Societe.Niveau_Societe BETWEEN 10 AND 30 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client], Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial FROM Table_Devis INNER JOIN Table_Utilisateur ON Table_Devis.Code_Utilisateur = Table_Utilisateur.Code_Utilisateur INNER JOIN Table_Personne ON Table_Devis.Code_Personne = Table_Personne.Code_Personne INNER JOIN Table_Societe ON Table_Personne.Code_Societe = Table_Societe.Code_Societe GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel : La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total des devis clients de l'autre regroupé par commercial en sachant que les sociétés sont dans la meme table ?
je ne sais pas si je suis assez clair ?
merci.
lefevre
merci, c'est exactement ça
"bruno reiter [MVP]" <remove.this! a écrit dans le message de news: uYQbHQ$
un peu vite répondu, peut etre ça :
SELECT SUM(case when TS.Niveau_Societe BETWEEN 1 AND 9 then 1 else 0 end) AS [Qté devis prospect], SUM(case when TS.Niveau_Societe BETWEEN 10 AND 30 then 1 else 0 end) AS [Qté devis Client], TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial FROM Table_Devis TD INNER JOIN Table_Utilisateur TU ON TD.Code_Utilisateur = TU.Code_Utilisateur INNER JOIN Table_Personne TP ON TD.Code_Personne = TP.Code_Personne INNER JOIN Table_Societe TS ON TP.Code_Societe = TS.Code_Societe GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur ORDER BY TU.Prenom_Utilisateur
br
"bruno reiter [MVP]" <remove.this! wrote in message news:
peut etre qqchose comme :
SELECT COUNT(case when TS.Niveau_Societe BETWEEN 1 AND 9 then TD.Code_Devis end) AS [Qté devis prospect], COUNT(case when TS.Niveau_Societe BETWEEN 10 AND 30 then TD.Code_Devis) end AS [Qté devis Client], TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial FROM Table_Devis TD INNER JOIN Table_Utilisateur TU ON TD.Code_Utilisateur = TU.Code_Utilisateur INNER JOIN Table_Personne TP ON TD.Code_Personne = TP.Code_Personne INNER JOIN Table_Societe TS ON TP.Code_Societe = TS.Code_Societe GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur ORDER BY TU.Prenom_Utilisateur
br
"lefevre" wrote in message news:4276b506$0$8209$
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou client une table utilisateurs (commerciaux) chaque société est affecté à un commercial une table devis chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect], case when Table_Societe.Niveau_Societe BETWEEN 10 AND 30 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client], Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial FROM Table_Devis INNER JOIN Table_Utilisateur ON Table_Devis.Code_Utilisateur = Table_Utilisateur.Code_Utilisateur INNER JOIN Table_Personne ON Table_Devis.Code_Personne = Table_Personne.Code_Personne INNER JOIN Table_Societe ON Table_Personne.Code_Societe = Table_Societe.Code_Societe GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel : La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total des devis clients de l'autre regroupé par commercial en sachant que les sociétés sont dans la meme table ?
je ne sais pas si je suis assez clair ?
merci.
merci, c'est exactement ça
"bruno reiter [MVP]" <remove.this!.br33@bol.com.br> a écrit dans le message
de news: uYQbHQ$TFHA.580@TK2MSFTNGP15.phx.gbl...
un peu vite répondu, peut etre ça :
SELECT SUM(case when TS.Niveau_Societe BETWEEN 1 AND 9
then 1 else 0 end) AS [Qté devis prospect],
SUM(case when TS.Niveau_Societe BETWEEN 10 AND 30
then 1 else 0 end) AS [Qté devis Client],
TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial
FROM Table_Devis TD
INNER JOIN Table_Utilisateur TU
ON TD.Code_Utilisateur = TU.Code_Utilisateur
INNER JOIN Table_Personne TP
ON TD.Code_Personne = TP.Code_Personne
INNER JOIN Table_Societe TS
ON TP.Code_Societe = TS.Code_Societe
GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur
ORDER BY TU.Prenom_Utilisateur
br
"bruno reiter [MVP]" <remove.this!.br33@bol.com.br> wrote in message
news:eicxmi9TFHA.2520@TK2MSFTNGP09.phx.gbl...
peut etre qqchose comme :
SELECT COUNT(case when TS.Niveau_Societe BETWEEN 1 AND 9
then TD.Code_Devis end) AS [Qté devis prospect],
COUNT(case when TS.Niveau_Societe BETWEEN 10 AND 30
then TD.Code_Devis) end AS [Qté devis Client],
TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial
FROM Table_Devis TD
INNER JOIN Table_Utilisateur TU
ON TD.Code_Utilisateur = TU.Code_Utilisateur
INNER JOIN Table_Personne TP
ON TD.Code_Personne = TP.Code_Personne
INNER JOIN Table_Societe TS
ON TP.Code_Societe = TS.Code_Societe
GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur
ORDER BY TU.Prenom_Utilisateur
br
"lefevre" <lefevre@free.fr> wrote in message
news:4276b506$0$8209$636a15ce@news.free.fr...
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou
client
une table utilisateurs (commerciaux)
chaque société est affecté à un commercial
une table devis
chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then
COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect],
case when Table_Societe.Niveau_Societe BETWEEN 10 AND
30 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client],
Table_Utilisateur.Prenom_Utilisateur
+ ' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial
FROM Table_Devis INNER JOIN
Table_Utilisateur ON Table_Devis.Code_Utilisateur =
Table_Utilisateur.Code_Utilisateur INNER JOIN
Table_Personne ON Table_Devis.Code_Personne =
Table_Personne.Code_Personne INNER JOIN
Table_Societe ON Table_Personne.Code_Societe =
Table_Societe.Code_Societe
GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' +
Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur
ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel :
La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste
de sélection parce qu'elle n'est pas contenue dans une fonction
d'agrégation ou dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total
des devis clients de l'autre regroupé par commercial en sachant que les
sociétés sont dans la meme table ?
"bruno reiter [MVP]" <remove.this! a écrit dans le message de news: uYQbHQ$
un peu vite répondu, peut etre ça :
SELECT SUM(case when TS.Niveau_Societe BETWEEN 1 AND 9 then 1 else 0 end) AS [Qté devis prospect], SUM(case when TS.Niveau_Societe BETWEEN 10 AND 30 then 1 else 0 end) AS [Qté devis Client], TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial FROM Table_Devis TD INNER JOIN Table_Utilisateur TU ON TD.Code_Utilisateur = TU.Code_Utilisateur INNER JOIN Table_Personne TP ON TD.Code_Personne = TP.Code_Personne INNER JOIN Table_Societe TS ON TP.Code_Societe = TS.Code_Societe GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur ORDER BY TU.Prenom_Utilisateur
br
"bruno reiter [MVP]" <remove.this! wrote in message news:
peut etre qqchose comme :
SELECT COUNT(case when TS.Niveau_Societe BETWEEN 1 AND 9 then TD.Code_Devis end) AS [Qté devis prospect], COUNT(case when TS.Niveau_Societe BETWEEN 10 AND 30 then TD.Code_Devis) end AS [Qté devis Client], TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur AS Commercial FROM Table_Devis TD INNER JOIN Table_Utilisateur TU ON TD.Code_Utilisateur = TU.Code_Utilisateur INNER JOIN Table_Personne TP ON TD.Code_Personne = TP.Code_Personne INNER JOIN Table_Societe TS ON TP.Code_Societe = TS.Code_Societe GROUP BY TU.Prenom_Utilisateur + ' ' + TU.Nom_Utilisateur ORDER BY TU.Prenom_Utilisateur
br
"lefevre" wrote in message news:4276b506$0$8209$
bonsoir
dans ma base j'ai
une table societe dans laquelle le niveau_societe indique prospect ou client une table utilisateurs (commerciaux) chaque société est affecté à un commercial une table devis chaque devis est affecté à un commercial
SELECT case when Table_Societe.Niveau_Societe BETWEEN 1 AND 9 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis prospect], case when Table_Societe.Niveau_Societe BETWEEN 10 AND 30 then COUNT(Table_Devis.Code_Devis) end AS [Qté devis Client], Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur AS Commercial FROM Table_Devis INNER JOIN Table_Utilisateur ON Table_Devis.Code_Utilisateur = Table_Utilisateur.Code_Utilisateur INNER JOIN Table_Personne ON Table_Devis.Code_Personne = Table_Personne.Code_Personne INNER JOIN Table_Societe ON Table_Personne.Code_Societe = Table_Societe.Code_Societe GROUP BY Table_Utilisateur.Prenom_Utilisateur + ' ' + Table_Utilisateur.Nom_Utilisateur, Table_Utilisateur.Prenom_Utilisateur ORDER BY Table_Utilisateur.Prenom_Utilisateur
bien sur la reponse à ma requete est sans appel : La colonne 'Table_Societe.Niveau_Societe' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
donc comment compter le total des devis prospects d'un coté et le total des devis clients de l'autre regroupé par commercial en sachant que les sociétés sont dans la meme table ?