Мой текущий запрос SQL занимает последние 6 месяцев, и выбирает продажи, как такЕсть ли способ динамически создавать столбцы SQL в выбранном запросе?
SUM(CASE WHEN ci.InvoiceDate >= '20160501' AND ci.InvoiceDate <= '20160531' THEN cid.QuantityOrdered ELSE 0 END) AS 'May',
SUM(CASE WHEN ci.InvoiceDate >= '20160601' AND ci.InvoiceDate <= '20160630' THEN cid.QuantityOrdered ELSE 0 END) AS 'June',
SUM(CASE WHEN ci.InvoiceDate >= '20160701' AND ci.InvoiceDate <= '20160731' THEN cid.QuantityOrdered ELSE 0 END) AS 'July',
SUM(CASE WHEN ci.InvoiceDate >= '20160801' AND ci.InvoiceDate <= '20160831' THEN cid.QuantityOrdered ELSE 0 END) AS 'August',
SUM(CASE WHEN ci.InvoiceDate >= '20160901' AND ci.InvoiceDate <= '20160930' THEN cid.QuantityOrdered ELSE 0 END) AS 'September',
SUM(CASE WHEN ci.InvoiceDate >= '20161001' AND ci.InvoiceDate <= '20161030' THEN cid.QuantityOrdered ELSE 0 END) AS 'October',
Однако, когда я запускаю этот доклад в декабре, потому что я жестко закодированы в названиях месяц, я не буду ноябрьские показатели продаж.
В идеале мне бы хотелось, чтобы какая-то форма кода динамически создавала запрос выбора с последними 6 месяцами в нем.
Возможно ли это? Есть ли какая-либо документация, которую кто-то может указать мне, чтобы узнать больше о динамическом SQL?
Спасибо всем!
ли вы, нужны ли они как столбцы? или будут работать строки? – Amit
Нет, определенно нуждаются в них как столбцы –
Вы хотите [динамический стержень] (http://stackoverflow.com/questions/10404348), который возможен на SQL Server, но может быть запутанным. Если вы можете сделать это в клиентском инструменте (отчет, форма, веб-страница и т. Д.), Инструменты пользовательского интерфейса для динамических опорных точек, как правило, намного чище и проще. –