Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les 2/3
des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les 2/3
des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les 2/3
des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les 2/3
des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les 2/3
des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les 2/3
des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Le plus "visuel" serait par exemple de créer deux pseudo-colonnes :
- la première est une sous-requête qui compte le nombre de films pour le
même utilisateur
- la deuxième est une sous-requête qui compte le nombre de films pour le
même utilisateur et dont la clé est inférieur ou égale (pour numéroter les
films)
Reste à mettre le critère dans la clause where. Eventuellement faire un
avec un group by pour le comptage pour présenter les choses peut-être plus
élégamment/efficacement.
Cela donnerait SELECT *,(SELECT * FROM etc...) AS Films,(SELECT * FROM
etc...) AS Numéro FROM ... WHERE Numéro<=Films*2/3
Cela ressemble à un devoir ?
--
Patrice
"Ch." a écrit dans le message de news:
OtYu%
> Bonjour,
>
> j'ai une table qui contient 2 champs
> ID_UTIL, ID_FILM
>
> cette table contient 100% des films de chaque utilisateur !
>
> comment sans faire une boucle par utilisateur récupérer seulement les
> des films de chaque utilisateur ?
>
> Merci par avance !
>
> ps: Sous SQL2000
>
>
Le plus "visuel" serait par exemple de créer deux pseudo-colonnes :
- la première est une sous-requête qui compte le nombre de films pour le
même utilisateur
- la deuxième est une sous-requête qui compte le nombre de films pour le
même utilisateur et dont la clé est inférieur ou égale (pour numéroter les
films)
Reste à mettre le critère dans la clause where. Eventuellement faire un
avec un group by pour le comptage pour présenter les choses peut-être plus
élégamment/efficacement.
Cela donnerait SELECT *,(SELECT * FROM etc...) AS Films,(SELECT * FROM
etc...) AS Numéro FROM ... WHERE Numéro<=Films*2/3
Cela ressemble à un devoir ?
--
Patrice
"Ch." <christophe@digital16-9.com> a écrit dans le message de news:
OtYu%23LRZGHA.3868@TK2MSFTNGP04.phx.gbl...
> Bonjour,
>
> j'ai une table qui contient 2 champs
> ID_UTIL, ID_FILM
>
> cette table contient 100% des films de chaque utilisateur !
>
> comment sans faire une boucle par utilisateur récupérer seulement les
> des films de chaque utilisateur ?
>
> Merci par avance !
>
> ps: Sous SQL2000
>
>
Le plus "visuel" serait par exemple de créer deux pseudo-colonnes :
- la première est une sous-requête qui compte le nombre de films pour le
même utilisateur
- la deuxième est une sous-requête qui compte le nombre de films pour le
même utilisateur et dont la clé est inférieur ou égale (pour numéroter les
films)
Reste à mettre le critère dans la clause where. Eventuellement faire un
avec un group by pour le comptage pour présenter les choses peut-être plus
élégamment/efficacement.
Cela donnerait SELECT *,(SELECT * FROM etc...) AS Films,(SELECT * FROM
etc...) AS Numéro FROM ... WHERE Numéro<=Films*2/3
Cela ressemble à un devoir ?
--
Patrice
"Ch." a écrit dans le message de news:
OtYu%
> Bonjour,
>
> j'ai une table qui contient 2 champs
> ID_UTIL, ID_FILM
>
> cette table contient 100% des films de chaque utilisateur !
>
> comment sans faire une boucle par utilisateur récupérer seulement les
> des films de chaque utilisateur ?
>
> Merci par avance !
>
> ps: Sous SQL2000
>
>
SELECT A.*
FROM TBL AS A
WHERE A.ID_FILM IN
(
SELECT TOP 75 PERCENT B.ID_FILM
FROM TBL AS B
WHERE A.ID_UTIL = B.ID_UTIL
)
OUI OUI...
CELA RESSEMBLE A UN DEVOIR
"Patrice" a écrit dans le message de
news:%
> Le plus "visuel" serait par exemple de créer deux pseudo-colonnes :
> - la première est une sous-requête qui compte le nombre de films pour le
> même utilisateur
> - la deuxième est une sous-requête qui compte le nombre de films pour le
> même utilisateur et dont la clé est inférieur ou égale (pour numéroter les
> films)
>
> Reste à mettre le critère dans la clause where. Eventuellement faire un
JOIN
> avec un group by pour le comptage pour présenter les choses peut-être plus
> élégamment/efficacement.
>
> Cela donnerait SELECT *,(SELECT * FROM etc...) AS Films,(SELECT * FROM
> etc...) AS Numéro FROM ... WHERE Numéro<=Films*2/3
>
> Cela ressemble à un devoir ?
>
> --
> Patrice
>
> "Ch." a écrit dans le message de news:
> OtYu%
> > Bonjour,
> >
> > j'ai une table qui contient 2 champs
> > ID_UTIL, ID_FILM
> >
> > cette table contient 100% des films de chaque utilisateur !
> >
> > comment sans faire une boucle par utilisateur récupérer seulement les
2/3
> > des films de chaque utilisateur ?
> >
> > Merci par avance !
> >
> > ps: Sous SQL2000
> >
> >
>
>
SELECT A.*
FROM TBL AS A
WHERE A.ID_FILM IN
(
SELECT TOP 75 PERCENT B.ID_FILM
FROM TBL AS B
WHERE A.ID_UTIL = B.ID_UTIL
)
OUI OUI...
CELA RESSEMBLE A UN DEVOIR
"Patrice" <scribe@chez.com> a écrit dans le message de
news:%23pcCekTZGHA.4836@TK2MSFTNGP05.phx.gbl...
> Le plus "visuel" serait par exemple de créer deux pseudo-colonnes :
> - la première est une sous-requête qui compte le nombre de films pour le
> même utilisateur
> - la deuxième est une sous-requête qui compte le nombre de films pour le
> même utilisateur et dont la clé est inférieur ou égale (pour numéroter les
> films)
>
> Reste à mettre le critère dans la clause where. Eventuellement faire un
JOIN
> avec un group by pour le comptage pour présenter les choses peut-être plus
> élégamment/efficacement.
>
> Cela donnerait SELECT *,(SELECT * FROM etc...) AS Films,(SELECT * FROM
> etc...) AS Numéro FROM ... WHERE Numéro<=Films*2/3
>
> Cela ressemble à un devoir ?
>
> --
> Patrice
>
> "Ch." <christophe@digital16-9.com> a écrit dans le message de news:
> OtYu%23LRZGHA.3868@TK2MSFTNGP04.phx.gbl...
> > Bonjour,
> >
> > j'ai une table qui contient 2 champs
> > ID_UTIL, ID_FILM
> >
> > cette table contient 100% des films de chaque utilisateur !
> >
> > comment sans faire une boucle par utilisateur récupérer seulement les
2/3
> > des films de chaque utilisateur ?
> >
> > Merci par avance !
> >
> > ps: Sous SQL2000
> >
> >
>
>
SELECT A.*
FROM TBL AS A
WHERE A.ID_FILM IN
(
SELECT TOP 75 PERCENT B.ID_FILM
FROM TBL AS B
WHERE A.ID_UTIL = B.ID_UTIL
)
OUI OUI...
CELA RESSEMBLE A UN DEVOIR
"Patrice" a écrit dans le message de
news:%
> Le plus "visuel" serait par exemple de créer deux pseudo-colonnes :
> - la première est une sous-requête qui compte le nombre de films pour le
> même utilisateur
> - la deuxième est une sous-requête qui compte le nombre de films pour le
> même utilisateur et dont la clé est inférieur ou égale (pour numéroter les
> films)
>
> Reste à mettre le critère dans la clause where. Eventuellement faire un
JOIN
> avec un group by pour le comptage pour présenter les choses peut-être plus
> élégamment/efficacement.
>
> Cela donnerait SELECT *,(SELECT * FROM etc...) AS Films,(SELECT * FROM
> etc...) AS Numéro FROM ... WHERE Numéro<=Films*2/3
>
> Cela ressemble à un devoir ?
>
> --
> Patrice
>
> "Ch." a écrit dans le message de news:
> OtYu%
> > Bonjour,
> >
> > j'ai une table qui contient 2 champs
> > ID_UTIL, ID_FILM
> >
> > cette table contient 100% des films de chaque utilisateur !
> >
> > comment sans faire une boucle par utilisateur récupérer seulement les
2/3
> > des films de chaque utilisateur ?
> >
> > Merci par avance !
> >
> > ps: Sous SQL2000
> >
> >
>
>
patrice ta solution renvoi tout les enregistrements de la table A
au lieu de filtrer sur les 2/3
????
"Synopsis" wrote:
SELECT A.*
FROM TBL AS A
WHERE A.ID_FILM IN
(
SELECT TOP 75 PERCENT B.ID_FILM
FROM TBL AS B
WHERE A.ID_UTIL = B.ID_UTIL
)
OUI OUI...
CELA RESSEMBLE A UN DEVOIR
"Patrice" a écrit dans le message de
news:%
> Le plus "visuel" serait par exemple de créer deux pseudo-colonnes :
> - la première est une sous-requête qui compte le nombre de films pour
> le
> même utilisateur
> - la deuxième est une sous-requête qui compte le nombre de films pour
> le
> même utilisateur et dont la clé est inférieur ou égale (pour numéroter
> les
> films)
>
> Reste à mettre le critère dans la clause where. Eventuellement faire un
JOIN
> avec un group by pour le comptage pour présenter les choses peut-être
> plus
> élégamment/efficacement.
>
> Cela donnerait SELECT *,(SELECT * FROM etc...) AS Films,(SELECT * FROM
> etc...) AS Numéro FROM ... WHERE Numéro<=Films*2/3
>
> Cela ressemble à un devoir ?
>
> --
> Patrice
>
> "Ch." a écrit dans le message de news:
> OtYu%
> > Bonjour,
> >
> > j'ai une table qui contient 2 champs
> > ID_UTIL, ID_FILM
> >
> > cette table contient 100% des films de chaque utilisateur !
> >
> > comment sans faire une boucle par utilisateur récupérer seulement les
2/3
> > des films de chaque utilisateur ?
> >
> > Merci par avance !
> >
> > ps: Sous SQL2000
> >
> >
>
>
patrice ta solution renvoi tout les enregistrements de la table A
au lieu de filtrer sur les 2/3
????
"Synopsis" wrote:
SELECT A.*
FROM TBL AS A
WHERE A.ID_FILM IN
(
SELECT TOP 75 PERCENT B.ID_FILM
FROM TBL AS B
WHERE A.ID_UTIL = B.ID_UTIL
)
OUI OUI...
CELA RESSEMBLE A UN DEVOIR
"Patrice" <scribe@chez.com> a écrit dans le message de
news:%23pcCekTZGHA.4836@TK2MSFTNGP05.phx.gbl...
> Le plus "visuel" serait par exemple de créer deux pseudo-colonnes :
> - la première est une sous-requête qui compte le nombre de films pour
> le
> même utilisateur
> - la deuxième est une sous-requête qui compte le nombre de films pour
> le
> même utilisateur et dont la clé est inférieur ou égale (pour numéroter
> les
> films)
>
> Reste à mettre le critère dans la clause where. Eventuellement faire un
JOIN
> avec un group by pour le comptage pour présenter les choses peut-être
> plus
> élégamment/efficacement.
>
> Cela donnerait SELECT *,(SELECT * FROM etc...) AS Films,(SELECT * FROM
> etc...) AS Numéro FROM ... WHERE Numéro<=Films*2/3
>
> Cela ressemble à un devoir ?
>
> --
> Patrice
>
> "Ch." <christophe@digital16-9.com> a écrit dans le message de news:
> OtYu%23LRZGHA.3868@TK2MSFTNGP04.phx.gbl...
> > Bonjour,
> >
> > j'ai une table qui contient 2 champs
> > ID_UTIL, ID_FILM
> >
> > cette table contient 100% des films de chaque utilisateur !
> >
> > comment sans faire une boucle par utilisateur récupérer seulement les
2/3
> > des films de chaque utilisateur ?
> >
> > Merci par avance !
> >
> > ps: Sous SQL2000
> >
> >
>
>
patrice ta solution renvoi tout les enregistrements de la table A
au lieu de filtrer sur les 2/3
????
"Synopsis" wrote:
SELECT A.*
FROM TBL AS A
WHERE A.ID_FILM IN
(
SELECT TOP 75 PERCENT B.ID_FILM
FROM TBL AS B
WHERE A.ID_UTIL = B.ID_UTIL
)
OUI OUI...
CELA RESSEMBLE A UN DEVOIR
"Patrice" a écrit dans le message de
news:%
> Le plus "visuel" serait par exemple de créer deux pseudo-colonnes :
> - la première est une sous-requête qui compte le nombre de films pour
> le
> même utilisateur
> - la deuxième est une sous-requête qui compte le nombre de films pour
> le
> même utilisateur et dont la clé est inférieur ou égale (pour numéroter
> les
> films)
>
> Reste à mettre le critère dans la clause where. Eventuellement faire un
JOIN
> avec un group by pour le comptage pour présenter les choses peut-être
> plus
> élégamment/efficacement.
>
> Cela donnerait SELECT *,(SELECT * FROM etc...) AS Films,(SELECT * FROM
> etc...) AS Numéro FROM ... WHERE Numéro<=Films*2/3
>
> Cela ressemble à un devoir ?
>
> --
> Patrice
>
> "Ch." a écrit dans le message de news:
> OtYu%
> > Bonjour,
> >
> > j'ai une table qui contient 2 champs
> > ID_UTIL, ID_FILM
> >
> > cette table contient 100% des films de chaque utilisateur !
> >
> > comment sans faire une boucle par utilisateur récupérer seulement les
2/3
> > des films de chaque utilisateur ?
> >
> > Merci par avance !
> >
> > ps: Sous SQL2000
> >
> >
>
>
Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les 2/3
des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les 2/3
des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les 2/3
des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Bonjour,
CREATE TABLE T_USER_FILM
(ID_UTIL INT,
ID_FILM INT)
INSERT INTO T_USER_FILM VALUES (1, 100)
INSERT INTO T_USER_FILM VALUES (1, 101)
INSERT INTO T_USER_FILM VALUES (1, 102)
INSERT INTO T_USER_FILM VALUES (2, 201)
INSERT INTO T_USER_FILM VALUES (2, 202)
INSERT INTO T_USER_FILM VALUES (2, 203)
INSERT INTO T_USER_FILM VALUES (2, 204)
INSERT INTO T_USER_FILM VALUES (2, 205)
INSERT INTO T_USER_FILM VALUES (2, 206)
INSERT INTO T_USER_FILM VALUES (3, 301)
INSERT INTO T_USER_FILM VALUES (4, 401)
INSERT INTO T_USER_FILM VALUES (4, 402)
-- solution :
SELECT T1.ID_UTIL, T1.ID_FILM
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
Il serait temps de suivre quelques uns de mes cours....
Sur le net (SQLpro) par mes bouquins ou en formation pro...
A +
Ch. a écrit :
> Bonjour,
>
> j'ai une table qui contient 2 champs
> ID_UTIL, ID_FILM
>
> cette table contient 100% des films de chaque utilisateur !
>
> comment sans faire une boucle par utilisateur récupérer seulement les
> des films de chaque utilisateur ?
>
> Merci par avance !
>
> ps: Sous SQL2000
>
>
--
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.datasapiens.com ***********************
Bonjour,
CREATE TABLE T_USER_FILM
(ID_UTIL INT,
ID_FILM INT)
INSERT INTO T_USER_FILM VALUES (1, 100)
INSERT INTO T_USER_FILM VALUES (1, 101)
INSERT INTO T_USER_FILM VALUES (1, 102)
INSERT INTO T_USER_FILM VALUES (2, 201)
INSERT INTO T_USER_FILM VALUES (2, 202)
INSERT INTO T_USER_FILM VALUES (2, 203)
INSERT INTO T_USER_FILM VALUES (2, 204)
INSERT INTO T_USER_FILM VALUES (2, 205)
INSERT INTO T_USER_FILM VALUES (2, 206)
INSERT INTO T_USER_FILM VALUES (3, 301)
INSERT INTO T_USER_FILM VALUES (4, 401)
INSERT INTO T_USER_FILM VALUES (4, 402)
-- solution :
SELECT T1.ID_UTIL, T1.ID_FILM
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
Il serait temps de suivre quelques uns de mes cours....
Sur le net (SQLpro) par mes bouquins ou en formation pro...
A +
Ch. a écrit :
> Bonjour,
>
> j'ai une table qui contient 2 champs
> ID_UTIL, ID_FILM
>
> cette table contient 100% des films de chaque utilisateur !
>
> comment sans faire une boucle par utilisateur récupérer seulement les
> des films de chaque utilisateur ?
>
> Merci par avance !
>
> ps: Sous SQL2000
>
>
--
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.datasapiens.com ***********************
Bonjour,
CREATE TABLE T_USER_FILM
(ID_UTIL INT,
ID_FILM INT)
INSERT INTO T_USER_FILM VALUES (1, 100)
INSERT INTO T_USER_FILM VALUES (1, 101)
INSERT INTO T_USER_FILM VALUES (1, 102)
INSERT INTO T_USER_FILM VALUES (2, 201)
INSERT INTO T_USER_FILM VALUES (2, 202)
INSERT INTO T_USER_FILM VALUES (2, 203)
INSERT INTO T_USER_FILM VALUES (2, 204)
INSERT INTO T_USER_FILM VALUES (2, 205)
INSERT INTO T_USER_FILM VALUES (2, 206)
INSERT INTO T_USER_FILM VALUES (3, 301)
INSERT INTO T_USER_FILM VALUES (4, 401)
INSERT INTO T_USER_FILM VALUES (4, 402)
-- solution :
SELECT T1.ID_UTIL, T1.ID_FILM
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
Il serait temps de suivre quelques uns de mes cours....
Sur le net (SQLpro) par mes bouquins ou en formation pro...
A +
Ch. a écrit :
> Bonjour,
>
> j'ai une table qui contient 2 champs
> ID_UTIL, ID_FILM
>
> cette table contient 100% des films de chaque utilisateur !
>
> comment sans faire une boucle par utilisateur récupérer seulement les
> des films de chaque utilisateur ?
>
> Merci par avance !
>
> ps: Sous SQL2000
>
>
--
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.datasapiens.com ***********************
Bonjour,
CREATE TABLE T_USER_FILM
(ID_UTIL INT,
ID_FILM INT)
INSERT INTO T_USER_FILM VALUES (1, 100)
INSERT INTO T_USER_FILM VALUES (1, 101)
INSERT INTO T_USER_FILM VALUES (1, 102)
INSERT INTO T_USER_FILM VALUES (2, 201)
INSERT INTO T_USER_FILM VALUES (2, 202)
INSERT INTO T_USER_FILM VALUES (2, 203)
INSERT INTO T_USER_FILM VALUES (2, 204)
INSERT INTO T_USER_FILM VALUES (2, 205)
INSERT INTO T_USER_FILM VALUES (2, 206)
INSERT INTO T_USER_FILM VALUES (3, 301)
INSERT INTO T_USER_FILM VALUES (4, 401)
INSERT INTO T_USER_FILM VALUES (4, 402)
-- solution :
SELECT T1.ID_UTIL, T1.ID_FILM
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
Il serait temps de suivre quelques uns de mes cours....
Sur le net (SQLpro) par mes bouquins ou en formation pro...
A +
Ch. a écrit :Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les
2/3 des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Bonjour,
CREATE TABLE T_USER_FILM
(ID_UTIL INT,
ID_FILM INT)
INSERT INTO T_USER_FILM VALUES (1, 100)
INSERT INTO T_USER_FILM VALUES (1, 101)
INSERT INTO T_USER_FILM VALUES (1, 102)
INSERT INTO T_USER_FILM VALUES (2, 201)
INSERT INTO T_USER_FILM VALUES (2, 202)
INSERT INTO T_USER_FILM VALUES (2, 203)
INSERT INTO T_USER_FILM VALUES (2, 204)
INSERT INTO T_USER_FILM VALUES (2, 205)
INSERT INTO T_USER_FILM VALUES (2, 206)
INSERT INTO T_USER_FILM VALUES (3, 301)
INSERT INTO T_USER_FILM VALUES (4, 401)
INSERT INTO T_USER_FILM VALUES (4, 402)
-- solution :
SELECT T1.ID_UTIL, T1.ID_FILM
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
Il serait temps de suivre quelques uns de mes cours....
Sur le net (SQLpro) par mes bouquins ou en formation pro...
A +
Ch. a écrit :
Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les
2/3 des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
Bonjour,
CREATE TABLE T_USER_FILM
(ID_UTIL INT,
ID_FILM INT)
INSERT INTO T_USER_FILM VALUES (1, 100)
INSERT INTO T_USER_FILM VALUES (1, 101)
INSERT INTO T_USER_FILM VALUES (1, 102)
INSERT INTO T_USER_FILM VALUES (2, 201)
INSERT INTO T_USER_FILM VALUES (2, 202)
INSERT INTO T_USER_FILM VALUES (2, 203)
INSERT INTO T_USER_FILM VALUES (2, 204)
INSERT INTO T_USER_FILM VALUES (2, 205)
INSERT INTO T_USER_FILM VALUES (2, 206)
INSERT INTO T_USER_FILM VALUES (3, 301)
INSERT INTO T_USER_FILM VALUES (4, 401)
INSERT INTO T_USER_FILM VALUES (4, 402)
-- solution :
SELECT T1.ID_UTIL, T1.ID_FILM
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
Il serait temps de suivre quelques uns de mes cours....
Sur le net (SQLpro) par mes bouquins ou en formation pro...
A +
Ch. a écrit :Bonjour,
j'ai une table qui contient 2 champs
ID_UTIL, ID_FILM
cette table contient 100% des films de chaque utilisateur !
comment sans faire une boucle par utilisateur récupérer seulement les
2/3 des films de chaque utilisateur ?
Merci par avance !
ps: Sous SQL2000
-- 1) on classe les occurrences
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT
----------- ----------- -----------
1 102 1
1 101 2
1 100 3
2 206 1
2 205 2
2 204 3
2 203 4
2 202 5
2 201 6
3 301 1
4 402 1
4 401 2
-- 2) on calcule le nombre total
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
(SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT NOMBRE_TOTAL
----------- ----------- ----------- ------------
1 102 1 3
1 101 2 3
1 100 3 3
2 206 1 6
2 205 2 6
2 204 3 6
2 203 4 6
2 202 5 6
2 201 6 6
3 301 1 1
4 402 1 2
4 401 2 2
-- 3) on calcule des 2/3 du total
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
(SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3 AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT NOMBRE_TOTAL
----------- ----------- ----------- ------------
1 102 1 2
1 101 2 2
1 100 3 2
2 206 1 4
2 205 2 4
2 204 3 4
2 203 4 4
2 202 5 4
2 201 6 4
3 301 1 0
4 402 1 1
4 401 2 1
-- 4) on écrème....
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
(SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3 AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
ORDER BY 1, 3
Si tu veut un calcul plus précis, transtype en flottant :
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
ROUND(CAST((SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) AS FLOAT)
* 2.0 / 3.0, 0) AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM)
<= ROUND(CAST((SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) AS FLOAT) * 2.0 / 3.0, 0)
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT NOMBRE_TOTAL
----------- ----------- ----------- -------------
1 102 1 2.0
1 101 2 2.0
2 206 1 4.0
2 205 2 4.0
2 204 3 4.0
2 203 4 4.0
3 301 1 1.0
4 402 1 1.0
A +
SQLpro [MVP] a écrit :
> Bonjour,
>
> CREATE TABLE T_USER_FILM
> (ID_UTIL INT,
> ID_FILM INT)
>
>
> INSERT INTO T_USER_FILM VALUES (1, 100)
> INSERT INTO T_USER_FILM VALUES (1, 101)
> INSERT INTO T_USER_FILM VALUES (1, 102)
> INSERT INTO T_USER_FILM VALUES (2, 201)
> INSERT INTO T_USER_FILM VALUES (2, 202)
> INSERT INTO T_USER_FILM VALUES (2, 203)
> INSERT INTO T_USER_FILM VALUES (2, 204)
> INSERT INTO T_USER_FILM VALUES (2, 205)
> INSERT INTO T_USER_FILM VALUES (2, 206)
> INSERT INTO T_USER_FILM VALUES (3, 301)
> INSERT INTO T_USER_FILM VALUES (4, 401)
> INSERT INTO T_USER_FILM VALUES (4, 402)
>
> -- solution :
>
> SELECT T1.ID_UTIL, T1.ID_FILM
> FROM T_USER_FILM AS T1
> INNER JOIN T_USER_FILM AS T2
> ON T1.ID_UTIL = T2.ID_UTIL
> AND T1.ID_FILM <= T2.ID_FILM
> GROUP BY T1.ID_UTIL, T1.ID_FILM
> HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
> FROM T_USER_FILM
> WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
>
>
> Il serait temps de suivre quelques uns de mes cours....
>
> Sur le net (SQLpro) par mes bouquins ou en formation pro...
>
> A +
>
>
> Ch. a écrit :
>> Bonjour,
>>
>> j'ai une table qui contient 2 champs
>> ID_UTIL, ID_FILM
>>
>> cette table contient 100% des films de chaque utilisateur !
>>
>> comment sans faire une boucle par utilisateur récupérer seulement les
>> 2/3 des films de chaque utilisateur ?
>>
>> Merci par avance !
>>
>> ps: Sous SQL2000
>>
>>
>
>
--
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.datasapiens.com ***********************
-- 1) on classe les occurrences
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT
----------- ----------- -----------
1 102 1
1 101 2
1 100 3
2 206 1
2 205 2
2 204 3
2 203 4
2 202 5
2 201 6
3 301 1
4 402 1
4 401 2
-- 2) on calcule le nombre total
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
(SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT NOMBRE_TOTAL
----------- ----------- ----------- ------------
1 102 1 3
1 101 2 3
1 100 3 3
2 206 1 6
2 205 2 6
2 204 3 6
2 203 4 6
2 202 5 6
2 201 6 6
3 301 1 1
4 402 1 2
4 401 2 2
-- 3) on calcule des 2/3 du total
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
(SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3 AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT NOMBRE_TOTAL
----------- ----------- ----------- ------------
1 102 1 2
1 101 2 2
1 100 3 2
2 206 1 4
2 205 2 4
2 204 3 4
2 203 4 4
2 202 5 4
2 201 6 4
3 301 1 0
4 402 1 1
4 401 2 1
-- 4) on écrème....
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
(SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3 AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
ORDER BY 1, 3
Si tu veut un calcul plus précis, transtype en flottant :
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
ROUND(CAST((SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) AS FLOAT)
* 2.0 / 3.0, 0) AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM)
<= ROUND(CAST((SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) AS FLOAT) * 2.0 / 3.0, 0)
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT NOMBRE_TOTAL
----------- ----------- ----------- -------------
1 102 1 2.0
1 101 2 2.0
2 206 1 4.0
2 205 2 4.0
2 204 3 4.0
2 203 4 4.0
3 301 1 1.0
4 402 1 1.0
A +
SQLpro [MVP] a écrit :
> Bonjour,
>
> CREATE TABLE T_USER_FILM
> (ID_UTIL INT,
> ID_FILM INT)
>
>
> INSERT INTO T_USER_FILM VALUES (1, 100)
> INSERT INTO T_USER_FILM VALUES (1, 101)
> INSERT INTO T_USER_FILM VALUES (1, 102)
> INSERT INTO T_USER_FILM VALUES (2, 201)
> INSERT INTO T_USER_FILM VALUES (2, 202)
> INSERT INTO T_USER_FILM VALUES (2, 203)
> INSERT INTO T_USER_FILM VALUES (2, 204)
> INSERT INTO T_USER_FILM VALUES (2, 205)
> INSERT INTO T_USER_FILM VALUES (2, 206)
> INSERT INTO T_USER_FILM VALUES (3, 301)
> INSERT INTO T_USER_FILM VALUES (4, 401)
> INSERT INTO T_USER_FILM VALUES (4, 402)
>
> -- solution :
>
> SELECT T1.ID_UTIL, T1.ID_FILM
> FROM T_USER_FILM AS T1
> INNER JOIN T_USER_FILM AS T2
> ON T1.ID_UTIL = T2.ID_UTIL
> AND T1.ID_FILM <= T2.ID_FILM
> GROUP BY T1.ID_UTIL, T1.ID_FILM
> HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
> FROM T_USER_FILM
> WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
>
>
> Il serait temps de suivre quelques uns de mes cours....
>
> Sur le net (SQLpro) par mes bouquins ou en formation pro...
>
> A +
>
>
> Ch. a écrit :
>> Bonjour,
>>
>> j'ai une table qui contient 2 champs
>> ID_UTIL, ID_FILM
>>
>> cette table contient 100% des films de chaque utilisateur !
>>
>> comment sans faire une boucle par utilisateur récupérer seulement les
>> 2/3 des films de chaque utilisateur ?
>>
>> Merci par avance !
>>
>> ps: Sous SQL2000
>>
>>
>
>
--
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.datasapiens.com ***********************
-- 1) on classe les occurrences
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT
----------- ----------- -----------
1 102 1
1 101 2
1 100 3
2 206 1
2 205 2
2 204 3
2 203 4
2 202 5
2 201 6
3 301 1
4 402 1
4 401 2
-- 2) on calcule le nombre total
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
(SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT NOMBRE_TOTAL
----------- ----------- ----------- ------------
1 102 1 3
1 101 2 3
1 100 3 3
2 206 1 6
2 205 2 6
2 204 3 6
2 203 4 6
2 202 5 6
2 201 6 6
3 301 1 1
4 402 1 2
4 401 2 2
-- 3) on calcule des 2/3 du total
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
(SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3 AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT NOMBRE_TOTAL
----------- ----------- ----------- ------------
1 102 1 2
1 101 2 2
1 100 3 2
2 206 1 4
2 205 2 4
2 204 3 4
2 203 4 4
2 202 5 4
2 201 6 4
3 301 1 0
4 402 1 1
4 401 2 1
-- 4) on écrème....
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
(SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3 AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
ORDER BY 1, 3
Si tu veut un calcul plus précis, transtype en flottant :
SELECT T1.ID_UTIL, T1.ID_FILM,
COUNT(ALL T2.ID_FILM) AS CLASSEMENT,
ROUND(CAST((SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) AS FLOAT)
* 2.0 / 3.0, 0) AS NOMBRE_TOTAL
FROM T_USER_FILM AS T1
INNER JOIN T_USER_FILM AS T2
ON T1.ID_UTIL = T2.ID_UTIL
AND T1.ID_FILM <= T2.ID_FILM
GROUP BY T1.ID_UTIL, T1.ID_FILM
HAVING COUNT(ALL T2.ID_FILM)
<= ROUND(CAST((SELECT COUNT(*)
FROM T_USER_FILM
WHERE ID_UTIL = T1.ID_UTIL) AS FLOAT) * 2.0 / 3.0, 0)
ORDER BY 1, 3
ID_UTIL ID_FILM CLASSEMENT NOMBRE_TOTAL
----------- ----------- ----------- -------------
1 102 1 2.0
1 101 2 2.0
2 206 1 4.0
2 205 2 4.0
2 204 3 4.0
2 203 4 4.0
3 301 1 1.0
4 402 1 1.0
A +
SQLpro [MVP] a écrit :
> Bonjour,
>
> CREATE TABLE T_USER_FILM
> (ID_UTIL INT,
> ID_FILM INT)
>
>
> INSERT INTO T_USER_FILM VALUES (1, 100)
> INSERT INTO T_USER_FILM VALUES (1, 101)
> INSERT INTO T_USER_FILM VALUES (1, 102)
> INSERT INTO T_USER_FILM VALUES (2, 201)
> INSERT INTO T_USER_FILM VALUES (2, 202)
> INSERT INTO T_USER_FILM VALUES (2, 203)
> INSERT INTO T_USER_FILM VALUES (2, 204)
> INSERT INTO T_USER_FILM VALUES (2, 205)
> INSERT INTO T_USER_FILM VALUES (2, 206)
> INSERT INTO T_USER_FILM VALUES (3, 301)
> INSERT INTO T_USER_FILM VALUES (4, 401)
> INSERT INTO T_USER_FILM VALUES (4, 402)
>
> -- solution :
>
> SELECT T1.ID_UTIL, T1.ID_FILM
> FROM T_USER_FILM AS T1
> INNER JOIN T_USER_FILM AS T2
> ON T1.ID_UTIL = T2.ID_UTIL
> AND T1.ID_FILM <= T2.ID_FILM
> GROUP BY T1.ID_UTIL, T1.ID_FILM
> HAVING COUNT(ALL T2.ID_FILM) <= (SELECT COUNT(*)
> FROM T_USER_FILM
> WHERE ID_UTIL = T1.ID_UTIL) * 2 / 3
>
>
> Il serait temps de suivre quelques uns de mes cours....
>
> Sur le net (SQLpro) par mes bouquins ou en formation pro...
>
> A +
>
>
> Ch. a écrit :
>> Bonjour,
>>
>> j'ai une table qui contient 2 champs
>> ID_UTIL, ID_FILM
>>
>> cette table contient 100% des films de chaque utilisateur !
>>
>> comment sans faire une boucle par utilisateur récupérer seulement les
>> 2/3 des films de chaque utilisateur ?
>>
>> Merci par avance !
>>
>> ps: Sous SQL2000
>>
>>
>
>
--
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.datasapiens.com ***********************