, пожалуйста, рассмотрите этот упрощенный сценарий для базы данных SQL Server. Это не совсем так, как мои таблицы построены, но примера достаточно для того, что мне нужно знать.Как отобразить консолидированную версию таблицы SQL Server?
У меня есть таблица продуктов с первичным ключом, допустим, IdProduct
и некоторые другие столбцы, такие как название и описание продукта.
Тогда у меня есть что-то вроде общего объема продаж в месяц (SalesPerMonth
). В этой второй таблице приведены некоторые поля, такие как
IdMonthlySale (key)
IdProduct (foreign key to the main table)
TotalSales (money)
Monthy (int or smallint)
Year (int or smallint)
Вторая таблица будет содержать подробную информацию. Мы можем отслеживать продажи определенного продукта, делая SELECT * FROM SalesPerMonth WHERE ProductId = xx
Но скажем, я хочу отображать эти данные, как если бы они не были нормализованы. Я хочу, чтобы плоская таблица продуктов X месяц/год показывала последние 8 месяцев. Что-то более или менее:
Prod * Jan * Feb * Mar * Apr * May * Jun * Jul * Aug *
-----------------------------------------------------------------------------
Prod 1 * 500.00* 480.00* 470.00* 510.00* 555.00* 530.00* 440.00* 490.00*
-----------------------------------------------------------------------------
Prod 2 * 650.00* 680.00* 670.00* 710.00* 755.00* 630.00* 740.00* 820.00*
Хорошо. Надеюсь, вы поняли эту идею. Мне нужно сгладить результирующую таблицу, и мне нужно передать ее таким образом моим пользователям. Как я могу это сделать? Заранее спасибо.
Да, у меня есть. .. Я взгляну. –
Спасибо, я постараюсь пойти с вашим намеком. Я, возможно, вернусь сюда и попрошу больше, но это очень полезно. –
Благодарим вас за помощь. В конце концов, после некоторых исследований я нашел эту замечательную статью (http://www.sommarskog.se/dynamic_sql.html) о динамическом SQL (потому что мне нужен динамический SQL, чтобы найти столбцы, которые мне нужны в моем Pivot) и эта фантастическая хранимая процедура (http://www.sommarskog.se/pivot_sp.sp), которая будет динамически находить нужные вам поля в вашем запросе и динамически размещать их в виде столбцов. –