Развернуть более одной колонки

У меня две таблицы в SQL Server 2008, у меня есть потребности статей в неделю, а в другой у меня есть запас, что-то вроде

ПОТРЕБНОСТИ:

Article Week Need -------------------------------------------------------------------- aa 1 25 aa 2 13 aa 4 33 aa 6 21 aa 25 40 ab 1 1 ab 2 3 ab 16 14 ab 50 50 

АКЦИИ

  Article Units --------------------------------------------------------------------------- aa 80 ab 14 ac 8 

и мне нужно показать что-то вроде:

  Article WEEK1 WEEK2 WEEK4 WEEK6 WEEK16 WEEK25 needs stock needs stock needs stock needs stock needs stock needs stock aa 25 80 13 55 42 22 21 20 0 -1 40 -1 ab 1 14 3 13 0 10 0 10 14 10 0 -4 

Это покажет в Encel, для этого я использую C # и T-SQL, моя проблема в том, что если вы используете PIVOT, я могу сделать это с потребностями в неделю, но я ожидаю потребности и запасы, если я обойдусь без стержня, я могу получить статью за неделю, запасать, сохранить данные в объектах и ​​сделать расчет запаса в неделю, а затем форматировать Excel, но у меня есть одна проблема, в которой я нуждаюсь в объекте:

 puclic class needsPerWeek { string Article{get;set;} int needsWeek1{get;set;} int stockWeek1{get;set;} int needsWeek2{get;set;} int stockWeek2{get;set;} int needsWeek{get;set;} int stockWeek4{get;set;} int needsWeek6{get;set;} int stockWeek6{get;set;} int needsWeek16{get;set;} int stockWeek16{get;set;} int needsWeek25{get;set;} int stockWeek25{get;set;} int needsWeek50{get;set;} int stockWeek50{get;set;} .... .... } 

но я не знаю, сколько недель я выберу.

Итак, могу ли я сделать это с помощью pivot ?, или любым другим способом получить это?

Просто скопируйте и вставьте код ниже и внесите некоторые изменения в соответствии с вашими потребностями. Мы просто делаем динамические строки столбцов (UnitsWeek1, UnitsWeek2, NeedsWeek1 … и т. Д.). И получить две таблицы с помощью Pivot и получить финальную таблицу, присоединив их.

 DECLARE @cols1 AS NVARCHAR(MAX), @query1 AS NVARCHAR(MAX), @cols2 AS NVARCHAR(MAX), @query2 AS NVARCHAR(MAX); select @cols1 = STUFF((SELECT distinct ',' + QUOTENAME('NeedsWeek'+Week) from NeedsMaster FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') set @query1 = 'SELECT Article, ' + @cols1 + ' from ( select Article , Need ,''NeedsWeek''+Week as Week from NeedsMaster ) x pivot ( min(need) for Week in (' + @cols1 + ') ) p ' select @cols2 = STUFF((SELECT distinct ',' + QUOTENAME('UnitsWeek'+n.Week) from NeedsMaster n left join StocksMaster s on s.Article=n.Article FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') set @query2 = 'Select * from (SELECT Article, ' + @cols2 + ' from ( select n.Article , s.Units ,''UnitsWeek''+n.Week as Week from StocksMaster s inner join NeedsMaster n on s.Article=n.Article ) x1 pivot ( min(Units) for Week in (' + @cols2 + ') ) p1 ) a inner join (SELECT Article, ' + @cols1 + ' from ( select Article , Need ,''NeedsWeek''+Week as Week from NeedsMaster ) x2 pivot ( min(need) for Week in (' + @cols1 + ') ) p2 ) b on a.Article=b.Article' execute(@query2) 

(@ query1 предназначен только для лучшего понимания). Попробуйте, и я надеюсь, вы отредактируете его как свои требования.

Справка

  • Отправлять файл excel из базы данных в excel без записи файла
  • Импорт данных из MS Excel в SQL Server 2008 R2
  • Получить только дату из datetime sql без преобразования в varchar, чтобы я мог сортировать его в excel
  • Можно ли перенести результаты MS SQL в новый файл MS Excel?
  • Пропуск строк при импорте Excel в SQL с использованием SSIS 2008
  • «Поставщик« Microsoft.ACE.OLEDB.12.0 »не зарегистрирован на локальном компьютере« Ошибка при импорте процесса xlsx на сервер sql
  • Чтение изображения из Excel и его сохранение в sqlserver
  • Самый быстрый способ переноса данных таблицы Excel в SQL 2008R2
  • Ошибки усечения при попытке импортировать из Excel
  • Проблема форматирования даты CFSpreadsheet
  • импорт данных из Excel на SQL Server 2008
  • Interesting Posts

    Excel4Macro Show.ToolBar устанавливает CutCopyMode в false

    Как подключиться к процессу приложений VSTO Excel для отладки?

    Отрегулируйте все листы с одинаковой компоновкой

    получить строку значений в диаграмме excel

    Excel Query для объединения нескольких строк в несколько CSV на основе временной метки

    Excel, vlookup из двух столбцов

    Объединение данных из других рабочих книг в одну рабочую книгу

    Vlookup отображает только первые две строки в таблице

    Гиперссылка POI усечена

    Проверьте столбец H для определенного значения и удалите ячейку на основе другого значения и цикла

    Ошибка во время выполнения Excel VBA при пакетировании 1004: Определенная пользователем или объектная ошибка

    Как добавить фильтр WHERE для дат, используя OLE для Excel?

    Игнорирование вкладок и пробелов в строке python

    FROM ключевое слово не найдено, где ожидается Ошибка в SQL

    Экземпляр Excel не закрывается, потому что мое приложение является плагином

    Давайте будем гением компьютера.