--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" a écrit dans le message
de news:--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" <christophe.perez@pjms.fr> a écrit dans le message
de news:5D089813-D134-4600-B6B1-BBC38F0AAAC9@microsoft.com...
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" a écrit dans le message
de news:--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
A brûle pourpoint ma préférence personnelle serait plutôt de faire le
contraire cad travailler avec des données normalisées et mettre en forme
quand le besoin s'en fait sentir plutôt que d'avoir des données
dénormalisées et de devoir les remettre en forme à chaque fois que je veux
faire une requête...
--
Patrice
"msnews.microsoft.com" a écrit dans le message
de groupe de discussion :Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" a écrit dans le message
de news:--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
A brûle pourpoint ma préférence personnelle serait plutôt de faire le
contraire cad travailler avec des données normalisées et mettre en forme
quand le besoin s'en fait sentir plutôt que d'avoir des données
dénormalisées et de devoir les remettre en forme à chaque fois que je veux
faire une requête...
--
Patrice
"msnews.microsoft.com" <christophe.perez@pjms.fr> a écrit dans le message
de groupe de discussion :
E5699727-48D2-4A3E-9F9D-834F09D17AB2@microsoft.com...
Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" <christophe.perez@pjms.fr> a écrit dans le message
de news:5D089813-D134-4600-B6B1-BBC38F0AAAC9@microsoft.com...
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
A brûle pourpoint ma préférence personnelle serait plutôt de faire le
contraire cad travailler avec des données normalisées et mettre en forme
quand le besoin s'en fait sentir plutôt que d'avoir des données
dénormalisées et de devoir les remettre en forme à chaque fois que je veux
faire une requête...
--
Patrice
"msnews.microsoft.com" a écrit dans le message
de groupe de discussion :Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" a écrit dans le message
de news:--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur du
code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
Patrice ,
je comprends un "peu" ce que tu veux dire, mais il existe aussi des
contraintes clients.
je reçois ce type de données j'essai juste de m'en sortir avec et d'eviter
des traitements lourds.
Mais dans une certaine logique, je ne trouve pas ça ridicule.
En gros cela correspond à l'attachement d'une personne à plusieurs
abonnements.
Ch.
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:A brûle pourpoint ma préférence personnelle serait plutôt de faire le
contraire cad travailler avec des données normalisées et mettre en forme
quand le besoin s'en fait sentir plutôt que d'avoir des données
dénormalisées et de devoir les remettre en forme à chaque fois que je veux
faire une requête...
--
Patrice
"msnews.microsoft.com" a écrit dans le message
de groupe de discussion :Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" a écrit dans le
message de news:--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
Patrice ,
je comprends un "peu" ce que tu veux dire, mais il existe aussi des
contraintes clients.
je reçois ce type de données j'essai juste de m'en sortir avec et d'eviter
des traitements lourds.
Mais dans une certaine logique, je ne trouve pas ça ridicule.
En gros cela correspond à l'attachement d'une personne à plusieurs
abonnements.
Ch.
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:F9F5F863-C655-480D-8DF7-C0CD7FB36D69@microsoft.com...
A brûle pourpoint ma préférence personnelle serait plutôt de faire le
contraire cad travailler avec des données normalisées et mettre en forme
quand le besoin s'en fait sentir plutôt que d'avoir des données
dénormalisées et de devoir les remettre en forme à chaque fois que je veux
faire une requête...
--
Patrice
"msnews.microsoft.com" <christophe.perez@pjms.fr> a écrit dans le message
de groupe de discussion :
E5699727-48D2-4A3E-9F9D-834F09D17AB2@microsoft.com...
Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" <christophe.perez@pjms.fr> a écrit dans le
message de news:5D089813-D134-4600-B6B1-BBC38F0AAAC9@microsoft.com...
--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
Patrice ,
je comprends un "peu" ce que tu veux dire, mais il existe aussi des
contraintes clients.
je reçois ce type de données j'essai juste de m'en sortir avec et d'eviter
des traitements lourds.
Mais dans une certaine logique, je ne trouve pas ça ridicule.
En gros cela correspond à l'attachement d'une personne à plusieurs
abonnements.
Ch.
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:A brûle pourpoint ma préférence personnelle serait plutôt de faire le
contraire cad travailler avec des données normalisées et mettre en forme
quand le besoin s'en fait sentir plutôt que d'avoir des données
dénormalisées et de devoir les remettre en forme à chaque fois que je veux
faire une requête...
--
Patrice
"msnews.microsoft.com" a écrit dans le message
de groupe de discussion :Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" a écrit dans le
message de news:--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
Pas ridicule, simplement pas facile. A mon avis, le fond du problème est
que tu dois appeler une fonction pour des valeurs différentes et récupérer
l'ensemble des lignes retournées par ces différents appels.
Tu as exploré la voie CTE suggérée par Fred ?
Bon courage.
--
Patrice
"msnews.microsoft.com" a écrit dans le message
de groupe de discussion :Patrice ,
je comprends un "peu" ce que tu veux dire, mais il existe aussi des
contraintes clients.
je reçois ce type de données j'essai juste de m'en sortir avec et
d'eviter des traitements lourds.
Mais dans une certaine logique, je ne trouve pas ça ridicule.
En gros cela correspond à l'attachement d'une personne à plusieurs
abonnements.
Ch.
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:A brûle pourpoint ma préférence personnelle serait plutôt de faire le
contraire cad travailler avec des données normalisées et mettre en forme
quand le besoin s'en fait sentir plutôt que d'avoir des données
dénormalisées et de devoir les remettre en forme à chaque fois que je
veux faire une requête...
--
Patrice
"msnews.microsoft.com" a écrit dans le
message de groupe de discussion :Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" a écrit dans le
message de news:--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
Pas ridicule, simplement pas facile. A mon avis, le fond du problème est
que tu dois appeler une fonction pour des valeurs différentes et récupérer
l'ensemble des lignes retournées par ces différents appels.
Tu as exploré la voie CTE suggérée par Fred ?
Bon courage.
--
Patrice
"msnews.microsoft.com" <christophe.perez@pjms.fr> a écrit dans le message
de groupe de discussion :
2BD95585-8F89-4407-BF19-2219DC000D00@microsoft.com...
Patrice ,
je comprends un "peu" ce que tu veux dire, mais il existe aussi des
contraintes clients.
je reçois ce type de données j'essai juste de m'en sortir avec et
d'eviter des traitements lourds.
Mais dans une certaine logique, je ne trouve pas ça ridicule.
En gros cela correspond à l'attachement d'une personne à plusieurs
abonnements.
Ch.
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:F9F5F863-C655-480D-8DF7-C0CD7FB36D69@microsoft.com...
A brûle pourpoint ma préférence personnelle serait plutôt de faire le
contraire cad travailler avec des données normalisées et mettre en forme
quand le besoin s'en fait sentir plutôt que d'avoir des données
dénormalisées et de devoir les remettre en forme à chaque fois que je
veux faire une requête...
--
Patrice
"msnews.microsoft.com" <christophe.perez@pjms.fr> a écrit dans le
message de groupe de discussion :
E5699727-48D2-4A3E-9F9D-834F09D17AB2@microsoft.com...
Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" <christophe.perez@pjms.fr> a écrit dans le
message de news:5D089813-D134-4600-B6B1-BBC38F0AAAC9@microsoft.com...
--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100
Pas ridicule, simplement pas facile. A mon avis, le fond du problème est
que tu dois appeler une fonction pour des valeurs différentes et récupérer
l'ensemble des lignes retournées par ces différents appels.
Tu as exploré la voie CTE suggérée par Fred ?
Bon courage.
--
Patrice
"msnews.microsoft.com" a écrit dans le message
de groupe de discussion :Patrice ,
je comprends un "peu" ce que tu veux dire, mais il existe aussi des
contraintes clients.
je reçois ce type de données j'essai juste de m'en sortir avec et
d'eviter des traitements lourds.
Mais dans une certaine logique, je ne trouve pas ça ridicule.
En gros cela correspond à l'attachement d'une personne à plusieurs
abonnements.
Ch.
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:A brûle pourpoint ma préférence personnelle serait plutôt de faire le
contraire cad travailler avec des données normalisées et mettre en forme
quand le besoin s'en fait sentir plutôt que d'avoir des données
dénormalisées et de devoir les remettre en forme à chaque fois que je
veux faire une requête...
--
Patrice
"msnews.microsoft.com" a écrit dans le
message de groupe de discussion :Bonjour à tous,
je crois que j'ai pas été au point sur le copié collé.
mais du coup personne n'a une idée ?
je suis obligé de faire une vilaine boucle ?
"msnews.microsoft.com" a écrit dans le
message de news:--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
--voici le bout de code pour illustrer
CREATE TABLE TEST (ID INT IDENTITY(1,1) PRIMARY KEY, CODE VARCHAR(50))
INSERT INTO test (code) VALUES ('100;1001')
INSERT INTO test (code) VALUES ('788')
INSERT INTO test (code) VALUES ('100;1001;888')
INSERT INTO test (code) VALUES ('150;178,188')
INSERT INTO test (code) VALUES ('100')
--En gros j'ai une function de table dans laquelle j'envoie la valeur
du code et il me retourne autant de ligne que necessaire
--Seulement je suis obligé de faire une boucle
--comment pourrais je faire pour eviter la boucle et faire cela en une
sorte de select comme ça
SELECT y.*
FROM ( SELECT ID, CODE
FROM test) AS Z
INNER JOIN
(SELECT z.ID, RESULT
FROM MASTER.dbo.mafunctionSplit(z.CODE,';')) Y
ON y.id = z.id
--pour avoir cela comme resultat
ID CODE
1 100
1 1001
2 788
3 100
3 1001
3 888
4 150
4 178
4 188
5 100