मैंने अपने डेटाबेस में कुछ तालिकाओं को और अधिक लचीला बनाने के लिए पुनर्गठित किया है, लेकिन मुझे यकीन नहीं है कि उनसे सार्थक डेटा निकालने के लिए एसक्यूएल कैसे लिखना है।
मेरे पास निम्न तालिकाएँ हैं (कुछ स्पष्ट उदाहरण के लिए संक्षिप्त रूप में):
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)
);
निम्नलिखित डेटा के साथ:
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');
उद्देश्य एक ऐसी क्वेरी प्राप्त करना है जो अपने सभी क्षेत्रों के साथ ऋण के लिए फ्लैट है। (वास्तविक दुनिया में एक ही स्कीमा के लिए 20-30 क्षेत्रों के बीच होने की संभावना होगी, लेकिन हमारे पास उदाहरण में 2 हैं):
LoanNumber First Name Last Name
---------- ----------- ----------
ABC123 John Doe
मैं 'फर्स्ट नेम' और 'लास्ट नेम' का संदर्भ देने वाली धुरी का उपयोग नहीं कर सकता क्योंकि मुझे पता नहीं होगा कि वास्तव में क्या होगा।
मेरे पास यहां पहले से ही स्कीमा के साथ SQL फिडेल है।
मैं वांछित परिणाम कैसे प्राप्त कर सकता हूं?