Отображение только выбранных пользователем столбцов
У меня есть два стола, список гостей и список клиентов. Я присоединился к ним и использовал динамическую сводную таблицу SQL для преобразования столбца "город" из таблицы GuestList в строки или заголовки таблиц, и среднее население будет отображаться под каждым городом, а " Id " имеет три значения: 1, 2,3, и каждый город имеет все эти три идентификатора. Таким образом, после выполнения запроса внизу заголовок моей таблицы выглядит следующим образом, и среднее население отображается под каждым городом.
Время| Атланта_1| Атланта_2| Атланта_3| Н_1| Н_2| Н_3| ЛА_1| ЛА_2| ЛА_3
Я хочу отображать только те столбцы, которые выбирает пользователь. Поэтому, если пользователь выберет Atlanta_1, NY_2, LA_1, то только эти три столбца будут отображаться вместе со временем, и ничего больше. Я могу создать параметр nvarchar в своей хранимой процедуре для строки столбцов, которые пользователь собирается выбрать, но какие изменения мне нужно будет внести в свой запрос только для отображения выбранных столбцов вместо всех? Не мог бы кто-нибудь помочь мне с этим, пожалуйста.
Что я уже пробовал:
declare @ColumnNames nvarchar(max) = '' declare @SQL nvarchar(max) = '' select @ColumnNames += QUOTENAME(a.address+'_'+Convert(Varchar(10),a.Id )) + ',' from GuestList as a innerjoin CustomerList as b on a.Id = b.Id groupby a.address orderby a.address set@ColumnNames =left(@ColumnNames, LEN(@ColumnNames)-1)set@SQL= N'select Time,'+@ColumnNames +' from ( select a.Time, a.address+'_'+Convert(Varchar(10),a.Id ) as City, a.population, b.Gender from GuestList as a inner join CustomerList as b on a.Id = b.Id inner join Split(@city, '','') as c on a.city = c.Data where a.city = c.Data ) as SourceTable pivot (avg(population) for city in ('+@ColumnNames +')) as PivotTable
MadMyche
Что вы используете, чтобы представить это? Или конечный пользователь использует программу типа SSMS
Member 13863605
Я использую ASP.NET