Ho riorganizzato alcune tabelle nel mio database per renderle più flessibili, ma non sono sicuro di come scrivere l'SQL per estrarre dati significativi da esse.
Ho le seguenti tabelle (in qualche modo abbreviate per un esempio più chiaro):
CREATE TABLE Loans(
Id int,
SchemaId int,
LoanNumber nvarchar(100)
);
CREATE TABLE SchemaFields(
Id int,
SchemaId int,
FieldName nvarchar(255)
);
CREATE TABLE LoanFields(
Id int,
LoanId int,
SchemaFieldId int,
FieldValue nvarchar(4000)
);
Con i seguenti dati:
INSERT INTO Loans (Id, SchemaId, LoanNumber) VALUES (1, 1, 'ABC123');
INSERT INTO SchemaFields (Id, SchemaId, FieldName) VALUES (1, 1, 'First Name');
INSERT INTO SchemaFields (Id, SchemaId, FieldName) VALUES (2, 1, 'Last Name');
INSERT INTO LoanFields (Id, LoanId, SchemaFieldId, FieldValue) VALUES (1, 1, 1, 'John');
INSERT INTO LoanFields (Id, LoanId, SchemaFieldId, FieldValue) VALUES (2, 1, 2, 'Doe');
L'obiettivo è quello di ottenere una query piatta per un prestito con tutti i suoi campi. (Nel mondo reale ci saranno probabilmente tra 20-30 campi per lo stesso schema, ma ne abbiamo solo 2 nell'esempio):
LoanNumber First Name Last Name
---------- ----------- ----------
ABC123 John Doe
Non riesco a usare un perno che fa riferimento a "Nome" e "Cognome" perché non ho idea di cosa ci sarà effettivamente.
Ho un violino SQL qui con lo schema già in atto.
Come posso ottenere il risultato desiderato?