Comment obtenir une sortie comme suit en utilisant FOR XML/sql query. Je ne suis pas sûr comment je peux obtenir les valeurs de colonne en tant qu'éléments au lieu des noms de colonne des tables. J'utilise sql server 2005SERVEUR SQL POUR SYNTAXE XML
I HAVE TABLEAU Scema CE QUI SUIT
CREATE TABLE PARENT
(
PID INT,
PNAME VARCHAR(20)
)
CREATE TABLE CHILD
(
PID INT,
CID INT,
CNAME VARCHAR(20)
)
CREATE TABLE CHILDVALUE
(
CID INT,
CVALUE VARCHAR(20)
)
INSERT INTO PARENT VALUES (1, 'SALES1')
INSERT INTO PARENT VALUES (2, 'SALES2')
INSERT INTO CHILD VALUES (1, 1, 'FOR01')
INSERT INTO CHILD VALUES (1, 2, 'FOR02')
INSERT INTO CHILD VALUES (2, 3, 'FOR03')
INSERT INTO CHILD VALUES (2, 4, 'FOR04')
INSERT INTO CHILDVALUE VALUES (1, '250000')
INSERT INTO CHILDVALUE VALUES (2, '400000')
INSERT INTO CHILDVALUE VALUES (3, '500000')
INSERT INTO CHILDVALUE VALUES (4, '800000')
La sortie Je cherche est la suivante
<SALE1>
<FOR01>250000</FOR01>
<FOR02>400000</FOR02>
</SALE1>
<SALE2>
<FOR03>500000</FOR03>
<FOR04>800000</FOR04>
</SALE2>
Merci pour la réponse. J'ai aussi pu obtenir quelque chose comme vous l'avez fait mais je voulais vraiment que les noms des colonnes soient des éléments. Donc ce que je demande n'est pas possible avec n'importe quelle syntaxe FOR XML? Aussi, je peux manipuler les tables dans une procédure stockée, utiliser en interne certaines tables temporaires, etc. mais je ne sais toujours pas comment obtenir le résultat dont j'ai besoin. – Raj73
@ Raj73: de tout ce que je sais sur SQL Server et sa prise en charge FOR XML, ce que vous essayez de faire ne peut pas être accompli. Si vous n'êtes pas satisfait de ce résultat, vous devrez utiliser un langage de programmation tel que C# ou VB.NET ou quelque chose pour lire les données et afficher le XML. –
merci, nous aurons un million de lignes et je ne voulais pas le tirer en utilisant C#/ado.net/linq pour générer et rendre le xml. J'avais l'intention d'exécuter la requête/Stored Proc à partir de la ligne de commande et de sortir le résultat sous forme de fichier xml. Peut-être que l'utilisation d'une lang de programmation est la seule façon que cela peut être fait. – Raj73