J'ai un fichier JSON imbriqué que j'essaie d'utiliser comme source de données pour les rapports. Je suis en train de "aplatir" la structure, mais je ne sais pas comment évaluer les données sur les frères et soeurs.Le serveur SQL obtient des données dans la structure de données JSON imbriquée
données Exemple:
{
"Cources": [{
"ID": 1,
"Name": "MAC100",
"Room": 100,
"TAID": 123,
"StudentsIDs": [
1, 2
]
}
],
"TAs": [{
"ID": 123,
"Name": "Joe",
"LName": "Smith"
}],
"Students": [{
"ID": 1,
"LName": "Clark"
}, {
"ID": 2,
"LName": "Peterson"
}]
}
SQL Server: ingèrent fichier de données et aplatissez données pour le rapport:
SELECT Cource.ID,
Cource.Name as CName,
Cource.Room as CRoom,
CourceStudents.LName
FROM OPENROWSET (BULK 'C:\Data\file.json', SINGLE_CLOB) as jsonfile
CROSS APPLY OPENJSON(BulkColumn,'$[0]') WITH(
Cources nvarchar(max) AS JSON,
TAs nvarchar(max) AS JSON,
Students nvarchar(max) AS JSON
) AS [SampleData]
CROSS APPLY OPENJSON(Cources) WITH (
Room integer,
Name nvarchar(max),
StudentsIDs nvarchar(max) AS JSON
) as [Cources]
CROSS APPLY OPENJSON(Students) WITH (
ID integer,
LName nvarchar(max),
) as [Students]
CROSS APPLY OPENJSON(StudentsIDs) WITH (
**//??? how to get full data for the student from "Students" joining by the student ID ?**
) as [CourceStudents]
J'ai trébuché de la façon d'obtenir toutes les données relatives aux élèves de "étudiants" dans « StudentIDs "se joindre à l'ID.
Que voulez-vous la sortie pour ressembler? Aussi, avoir une chaîne de nombres comme celle pour laquelle les étudiants sont dans ce que Cource n'est pas bonne. – dfundako
Ces données ne sont pas stockées dans la base de données. J'utilise uniquement SQL Server pour générer des rapports à partir du flux de données de la vie. J'essaye d'aplatir la structure de JSON pour ressembler aux rangées d'une table avec toutes les informations, par exemple: Cources.ID, Students.ID, Students.LName – kaplievabell