У меня есть мастер-таблица, которая не содержит эти столбцы (Visit_date, М-1, М-2, М-3), но в конечном итоге мне нужно эти столбцы (Visit_date, М-1, М-2, М-3) наряду с существующими столбцами мастер-таблицы, такие какДинамически построить статические столбцы, используя стержень в SQL Server
Retailer_id, survey_id, Group_Id, survery_Name
Я попытался с шарниром, но не может выполнить конечный результат, Plase предложить некоторые с примером
Master стол:
RetailerID Retailer SurveyName Date Score Weights
198760 ABC Quality 06/03/2016 10 10
198760 ABC Quality 06/02/2016 5 10
198760 ABC Quality 06/01/2016 5 5
198760 ABC Quality 06/12/2015 10 10
Ожидаемый результат:
Retailer_id survery_Name Last_Visit M-1 M-2 M-3 Weightage
198760 quality 10 5 5 10 10
Сценарий:
CREATE TABLE [dbo].[Master_Table]
(
[Retailer_ID] [nvarchar](50) NULL,
[RQSC_Survey_Name] [nvarchar](50) NULL,
[RQSC_Date] [date] NULL,
[RQSC_Weightage] [decimal](18, 0) NULL,
[RQSC_Score] [decimal](18, 0) NULL
) ON [PRIMARY]
INSERT [dbo].[Master_Table] ([Retailer_ID], [RQSC_Survey_Name], [RQSC_Date], [RQSC_Weightage], [RQSC_Score])
VALUES (N'198760', N'Quality', CAST(0x1C3B0B00 AS Date), CAST(10 AS Decimal(18, 0)), CAST(10 AS Decimal(18, 0)))
INSERT [dbo].[Master_Table] ([Retailer_ID], [RQSC_Survey_Name], [RQSC_Date], [RQSC_Weightage], [RQSC_Score])
VALUES (N'198760', N'Quality', CAST(0x003B0B00 AS Date), CAST(10 AS Decimal(18, 0)), CAST(5 AS Decimal(18, 0)))
INSERT [dbo].[Master_Table] ([Retailer_ID], [RQSC_Survey_Name], [RQSC_Date], [RQSC_Weightage], [RQSC_Score])
VALUES (N'198760', N'Quality', CAST(0xE13A0B00 AS Date), CAST(5 AS Decimal(18, 0)), CAST(5 AS Decimal(18, 0)))
INSERT [dbo].[Master_Table] ([Retailer_ID], [RQSC_Survey_Name], [RQSC_Date], [RQSC_Weightage], [RQSC_Score])
VALUES (N'198760', N'Quality', CAST(0xC23A0B00 AS Date), CAST(10 AS Decimal(18, 0)), CAST(10 AS Decimal(18, 0)))
Мой запрос:
SELECT
Retailer_ID, RQSC_Survey_Name,
[1] As LastVist, [2] as 'M-1', [3] as 'M-2', [4] as 'M-3',
[1] as 'Score'
FROM
(SELECT
RQSC_Score, Retailer_ID, RQSC_Survey_Name,
RQSC_Weightage,
ROW_NUMBER() OVER (PARTITION BY Retailer_ID ORDER BY RQSC_Date DESC) AS Rownumber
FROM
master_table
WHERE
Retailer_ID = 198760 AND RQSC_Survey_Id = 298) src
PIVOT(SUM(RQSC_Score)for Rownumber in ([1], [2], [3],[4])) piv;
Вот если я выбираю weightage колонку я получаю повторяющиеся строки основаны на колонке weightage но ожидаемого результата I должен получить весовую колонку
почему розничный идентификатор обратился к 123 рому ABC – mohan111