Bonjour,
voila j'ai une problematique et j'ai du mal a voir comment je peux faire
cela avec des group by et peut etre la fonction pivot ????
j'ai une table avec 2 cles,
ou la cle_A represente des personnes et la cle_B des enseignes à
laquelle elles appartiennent !
bien sur une cle_A peut se retrouver avec plusieurs enseignes (cle_b)
et justement on me demande de sortir des stats du style
je veux avoir le compte des individus pour la CLE_B valeur 1, combien de
ces individus sont aussi present dans la CLE_B valeur 2, combien dans la
CLe_B valeur 3 etc...
en gros pour l'enseigne A combien de personne se retrouve aussi dans les
autres enseignes etc...
pour l'exemple la CLe_A valeur 1 se retrouve dans 3 enseignes de la CLe_B
donc pour la CLe_B valeur 2 combien y'en a t'il en valeur 1 ou autre ???
CLE_A | CLE_B
1 1
1 2
1 3
2 1
2 4
3 1
4 3
j'espere que j'ai été clair, car je doute ;)
Bonjour,
voila j'ai une problematique et j'ai du mal a voir comment je peux faire
cela avec des group by et peut etre la fonction pivot ????
j'ai une table avec 2 cles,
ou la cle_A represente des personnes et la cle_B des enseignes à
laquelle elles appartiennent !
bien sur une cle_A peut se retrouver avec plusieurs enseignes (cle_b)
et justement on me demande de sortir des stats du style
je veux avoir le compte des individus pour la CLE_B valeur 1, combien de
ces individus sont aussi present dans la CLE_B valeur 2, combien dans la
CLe_B valeur 3 etc...
en gros pour l'enseigne A combien de personne se retrouve aussi dans les
autres enseignes etc...
pour l'exemple la CLe_A valeur 1 se retrouve dans 3 enseignes de la CLe_B
donc pour la CLe_B valeur 2 combien y'en a t'il en valeur 1 ou autre ???
CLE_A | CLE_B
1 1
1 2
1 3
2 1
2 4
3 1
4 3
j'espere que j'ai été clair, car je doute ;)
Bonjour,
voila j'ai une problematique et j'ai du mal a voir comment je peux faire
cela avec des group by et peut etre la fonction pivot ????
j'ai une table avec 2 cles,
ou la cle_A represente des personnes et la cle_B des enseignes à
laquelle elles appartiennent !
bien sur une cle_A peut se retrouver avec plusieurs enseignes (cle_b)
et justement on me demande de sortir des stats du style
je veux avoir le compte des individus pour la CLE_B valeur 1, combien de
ces individus sont aussi present dans la CLE_B valeur 2, combien dans la
CLe_B valeur 3 etc...
en gros pour l'enseigne A combien de personne se retrouve aussi dans les
autres enseignes etc...
pour l'exemple la CLe_A valeur 1 se retrouve dans 3 enseignes de la CLe_B
donc pour la CLe_B valeur 2 combien y'en a t'il en valeur 1 ou autre ???
CLE_A | CLE_B
1 1
1 2
1 3
2 1
2 4
3 1
4 3
j'espere que j'ai été clair, car je doute ;)
non, vous n'avez pas été clair et si vous doutez c'est que vous ne
comprennez pas non plus clairement votre problème.
Soyez précis, clair, complet... donc efficace. Postez la réponse attendue
par rapport à vos données.
Soyez gentil (pour ne pas dire poli) et donnez le DDL de vos tables et les
ordres d'insertion pour que chacun puisse reproduire le problème chez lui
pour vous aider !
A +
christophe a écrit :Bonjour,
voila j'ai une problematique et j'ai du mal a voir comment je peux faire
cela avec des group by et peut etre la fonction pivot ????
j'ai une table avec 2 cles,
ou la cle_A represente des personnes et la cle_B des enseignes à laquelle
elles appartiennent !
bien sur une cle_A peut se retrouver avec plusieurs enseignes (cle_b)
et justement on me demande de sortir des stats du style
je veux avoir le compte des individus pour la CLE_B valeur 1, combien de
ces individus sont aussi present dans la CLE_B valeur 2, combien dans la
CLe_B valeur 3 etc...
en gros pour l'enseigne A combien de personne se retrouve aussi dans les
autres enseignes etc...
pour l'exemple la CLe_A valeur 1 se retrouve dans 3 enseignes de la CLe_B
donc pour la CLe_B valeur 2 combien y'en a t'il en valeur 1 ou autre ???
CLE_A | CLE_B
1 1
1 2
1 3
2 1
2 4
3 1
4 3
j'espere que j'ai été clair, car je doute ;)
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
non, vous n'avez pas été clair et si vous doutez c'est que vous ne
comprennez pas non plus clairement votre problème.
Soyez précis, clair, complet... donc efficace. Postez la réponse attendue
par rapport à vos données.
Soyez gentil (pour ne pas dire poli) et donnez le DDL de vos tables et les
ordres d'insertion pour que chacun puisse reproduire le problème chez lui
pour vous aider !
A +
christophe a écrit :
Bonjour,
voila j'ai une problematique et j'ai du mal a voir comment je peux faire
cela avec des group by et peut etre la fonction pivot ????
j'ai une table avec 2 cles,
ou la cle_A represente des personnes et la cle_B des enseignes à laquelle
elles appartiennent !
bien sur une cle_A peut se retrouver avec plusieurs enseignes (cle_b)
et justement on me demande de sortir des stats du style
je veux avoir le compte des individus pour la CLE_B valeur 1, combien de
ces individus sont aussi present dans la CLE_B valeur 2, combien dans la
CLe_B valeur 3 etc...
en gros pour l'enseigne A combien de personne se retrouve aussi dans les
autres enseignes etc...
pour l'exemple la CLe_A valeur 1 se retrouve dans 3 enseignes de la CLe_B
donc pour la CLe_B valeur 2 combien y'en a t'il en valeur 1 ou autre ???
CLE_A | CLE_B
1 1
1 2
1 3
2 1
2 4
3 1
4 3
j'espere que j'ai été clair, car je doute ;)
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
non, vous n'avez pas été clair et si vous doutez c'est que vous ne
comprennez pas non plus clairement votre problème.
Soyez précis, clair, complet... donc efficace. Postez la réponse attendue
par rapport à vos données.
Soyez gentil (pour ne pas dire poli) et donnez le DDL de vos tables et les
ordres d'insertion pour que chacun puisse reproduire le problème chez lui
pour vous aider !
A +
christophe a écrit :Bonjour,
voila j'ai une problematique et j'ai du mal a voir comment je peux faire
cela avec des group by et peut etre la fonction pivot ????
j'ai une table avec 2 cles,
ou la cle_A represente des personnes et la cle_B des enseignes à laquelle
elles appartiennent !
bien sur une cle_A peut se retrouver avec plusieurs enseignes (cle_b)
et justement on me demande de sortir des stats du style
je veux avoir le compte des individus pour la CLE_B valeur 1, combien de
ces individus sont aussi present dans la CLE_B valeur 2, combien dans la
CLe_B valeur 3 etc...
en gros pour l'enseigne A combien de personne se retrouve aussi dans les
autres enseignes etc...
pour l'exemple la CLe_A valeur 1 se retrouve dans 3 enseignes de la CLe_B
donc pour la CLe_B valeur 2 combien y'en a t'il en valeur 1 ou autre ???
CLE_A | CLE_B
1 1
1 2
1 3
2 1
2 4
3 1
4 3
j'espere que j'ai été clair, car je doute ;)
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
oui fred désolé la précipitation,
alors voila un exemple qui va formaliser le tout !
avec les questions !
CREATE TABLE #TOTO (ID INT IDENTITY(1,1), CLE_SP BIGINT, CLE_ENSEIGNES
INT)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (1, 1)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (1, 2)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (1, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (2, 1)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (2, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (3, 1)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (3, 2)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (3, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (4, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (5, 3)
SELECT CLE_ENSEIGNES, COUNT(*) AS NB FROM #TOTO GROUP BY CLE_ENSEIGNES
--alors ici nous avons un comptage par enseigne
/*
hos ce que j'aimerais faire c'est un comptage par enseigne dont les
individus peut etre contenu dans d'autre enseigne.
exemple pour l'enseigne 1
oui fred désolé la précipitation,
alors voila un exemple qui va formaliser le tout !
avec les questions !
CREATE TABLE #TOTO (ID INT IDENTITY(1,1), CLE_SP BIGINT, CLE_ENSEIGNES
INT)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (1, 1)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (1, 2)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (1, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (2, 1)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (2, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (3, 1)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (3, 2)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (3, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (4, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (5, 3)
SELECT CLE_ENSEIGNES, COUNT(*) AS NB FROM #TOTO GROUP BY CLE_ENSEIGNES
--alors ici nous avons un comptage par enseigne
/*
hos ce que j'aimerais faire c'est un comptage par enseigne dont les
individus peut etre contenu dans d'autre enseigne.
exemple pour l'enseigne 1
oui fred désolé la précipitation,
alors voila un exemple qui va formaliser le tout !
avec les questions !
CREATE TABLE #TOTO (ID INT IDENTITY(1,1), CLE_SP BIGINT, CLE_ENSEIGNES
INT)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (1, 1)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (1, 2)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (1, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (2, 1)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (2, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (3, 1)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (3, 2)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (3, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (4, 3)
INSERT INTO #TOTO (CLE_SP, CLE_ENSEIGNES) VALUES (5, 3)
SELECT CLE_ENSEIGNES, COUNT(*) AS NB FROM #TOTO GROUP BY CLE_ENSEIGNES
--alors ici nous avons un comptage par enseigne
/*
hos ce que j'aimerais faire c'est un comptage par enseigne dont les
individus peut etre contenu dans d'autre enseigne.
exemple pour l'enseigne 1
select cle_enseignes, count(*) as nb from #toto group by cle_enseignes
where cle_sp in (select cle_sp, count(*) as nb from #toto group by cle_sp
having nb > 1)
select cle_enseignes, count(*) as nb from #toto group by cle_enseignes
where cle_sp in (select cle_sp, count(*) as nb from #toto group by cle_sp
having nb > 1)
select cle_enseignes, count(*) as nb from #toto group by cle_enseignes
where cle_sp in (select cle_sp, count(*) as nb from #toto group by cle_sp
having nb > 1)
"Christophe Lephay" a écrit dans le message
de news: 472f4d6d$0$5090$select cle_enseignes, count(*) as nb from #toto group by cle_enseignes
where cle_sp in (select cle_sp, count(*) as nb from #toto group by cle_sp
having nb > 1)
Ou peut-être ça, plutôt :
select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes
"Christophe Lephay" <christophe-lephay@wanadoo.fr> a écrit dans le message
de news: 472f4d6d$0$5090$ba4acef3@news.orange.fr...
select cle_enseignes, count(*) as nb from #toto group by cle_enseignes
where cle_sp in (select cle_sp, count(*) as nb from #toto group by cle_sp
having nb > 1)
Ou peut-être ça, plutôt :
select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes
"Christophe Lephay" a écrit dans le message
de news: 472f4d6d$0$5090$select cle_enseignes, count(*) as nb from #toto group by cle_enseignes
where cle_sp in (select cle_sp, count(*) as nb from #toto group by cle_sp
having nb > 1)
Ou peut-être ça, plutôt :
select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes
mais ton cas ne les couvre pas tous !
je n'ai que les cas qui sont dans plusieures enseignes hors ils me faut
quoi qu'il arrivent toutes les enseignes.
j'ai une piste qui donne de bons resultats mais je n'aime pas beaucoups le
code que j'ai fait !
"Christophe Lephay" a écrit dans le message
de news:472f5101$0$25928$select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes
mais ton cas ne les couvre pas tous !
je n'ai que les cas qui sont dans plusieures enseignes hors ils me faut
quoi qu'il arrivent toutes les enseignes.
j'ai une piste qui donne de bons resultats mais je n'aime pas beaucoups le
code que j'ai fait !
"Christophe Lephay" <christophe-lephay@wanadoo.fr> a écrit dans le message
de news:472f5101$0$25928$ba4acef3@news.orange.fr...
select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes
mais ton cas ne les couvre pas tous !
je n'ai que les cas qui sont dans plusieures enseignes hors ils me faut
quoi qu'il arrivent toutes les enseignes.
j'ai une piste qui donne de bons resultats mais je n'aime pas beaucoups le
code que j'ai fait !
"Christophe Lephay" a écrit dans le message
de news:472f5101$0$25928$select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes
"christophe" a écrit dans le message de news:mais ton cas ne les couvre pas tous !
je n'ai que les cas qui sont dans plusieures enseignes hors ils me faut
quoi qu'il arrivent toutes les enseignes.
j'ai une piste qui donne de bons resultats mais je n'aime pas beaucoups
le code que j'ai fait !
"Christophe Lephay" a écrit dans le
message de news:472f5101$0$25928$select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes
Ok :
select toto1.cle_enseignes, nb from #toto toto1
left join (select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes) toto2
on toto1.cle_enseignes = toto2.cle_enseignes
Une fois encore, j'ai pas testé...
"christophe" <christophe@digital16-9.com> a écrit dans le message de news:
DA7408BC-7162-4696-A1DE-1457D1D02893@microsoft.com...
mais ton cas ne les couvre pas tous !
je n'ai que les cas qui sont dans plusieures enseignes hors ils me faut
quoi qu'il arrivent toutes les enseignes.
j'ai une piste qui donne de bons resultats mais je n'aime pas beaucoups
le code que j'ai fait !
"Christophe Lephay" <christophe-lephay@wanadoo.fr> a écrit dans le
message de news:472f5101$0$25928$ba4acef3@news.orange.fr...
select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes
Ok :
select toto1.cle_enseignes, nb from #toto toto1
left join (select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes) toto2
on toto1.cle_enseignes = toto2.cle_enseignes
Une fois encore, j'ai pas testé...
"christophe" a écrit dans le message de news:mais ton cas ne les couvre pas tous !
je n'ai que les cas qui sont dans plusieures enseignes hors ils me faut
quoi qu'il arrivent toutes les enseignes.
j'ai une piste qui donne de bons resultats mais je n'aime pas beaucoups
le code que j'ai fait !
"Christophe Lephay" a écrit dans le
message de news:472f5101$0$25928$select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes
Ok :
select toto1.cle_enseignes, nb from #toto toto1
left join (select cle_enseignes, count(*) as nb from #toto
where cle_sp in
(select cle_sp from #toto group by cle_sp having count(*) > 1)
group by cle_enseignes) toto2
on toto1.cle_enseignes = toto2.cle_enseignes
Une fois encore, j'ai pas testé...