Мы работаем над приложением C#, мы используем Linq to SQL или стандартный ADO (при необходимости) для работы с SQL Server.SQL Server - PIVOT
У нас есть таблица изложил так:
идентификатор клиента, год/месяц, Наименование, Количество
Каждый клиент имеет дополнительные столбцы для каждого продукта.
Нам нужно отобразить эту информацию в сетке данных следующим образом:
клиента, год/месяц, продукт A Количество, продукт B Количество, продукт C Количество и т.д.
Что запрос может дать нам эти результаты? И как это может быть динамично, независимо от того, какие продукты добавляются и удаляются? Мы будем использовать ListView в WPF для отображения данных.
Мы просто будем хранить информацию по-разному, но они могут добавлять/удалять продукты все время.
Будет ли PIVOT работать?
(PS - названия продуктов являются действительно в другой таблице для нормализации, я изменил его немного для простоты для вас, ребят)
Какую скорость я смотрю здесь? Будут ли запросы, вызывающие эту хранимую процедуру, довольно медленными для таблицы с 22 миллионами записей? – jonathanpeppers
SP генерирует динамический код T-SQL, например 'select customername, case when productid = 1, а затем количество else 0 END AS Product1, case .... из группы заказов по имени пользователя. Мой опыт работы с производственными серверами ограничен, поэтому я не имею представления о 22 миллионах записей. Но я предлагаю вам создать индекс в столбце productname, а затем проверить скорость с записями, создаваемыми инструментами создания стресса/записи sql-сервера. –
Ваш ответ должен быть правильным, если не существует альтернативного способа для этого. Мои проблемы будут быстрыми и гибкими, поэтому нам придется просто попробовать. – jonathanpeppers