2015-05-07 4 views
0

У меня есть этот запрос, который работает отличноSQL Server динамический случай, когда

SELECT 
    Product, Description, 
    Sum(CASE WHEN Datum = ’01.2011’ THEN [A_Sales] END) AS [A_salesFeb], 
    Sum(CASE WHEN Datum = ’05.2011’ THEN [A_Sales] END) AS [A_salesMay], 
    Sum(CASE WHEN Datum = ’01.2011’ THEN [B_Sales] END) AS [B_salesFeb], 
    Sum(CASE WHEN Datum = ’05.2011’ THEN [B_Sales] END) AS [B_salesMay], 
FROM tblSales 
GROUP BY Product, Description 

Теперь мне нужно, чтобы сделать его динамичным на уровне Datum = «». Скажем, теперь у меня есть 08.2012 и 04.2013 Он должен просмотреть и выполнить сопоставление. Поэтому я изменил его на нижний запрос , но он не работает. Я получаю неверном цифры

SELECT 
    Product, Description, 
    Sum(CASE WHEN Datum = Datum THEN [A_Sales] END) AS [A_salesFeb], 
    Sum(CASE WHEN Datum = Datum THEN [A_Sales] END) AS [A_salesMay], 
    Sum(CASE WHEN Datum = Datum THEN [B_Sales] END) AS [B_salesFeb], 
    Sum(CASE WHEN Datum = Datum THEN [B_Sales] END) AS [B_salesMay], 
FROM tblSales 
GROUP BY Product, Description 

Образец данных: У меня есть 12 таблиц, и я хочу, чтобы пользователь мог выбрать любые две таблицы динамически/в качестве альтернативы, а затем сделать comparisim. То, что у меня сейчас, является статичным. Что-то вроде этого: Sample data

+1

Добавьте некоторые выборочные данные, и сказать нам больше, чем «это не работает ». –

+0

это было бы разрешимо, если вы можете предоставить некоторые данные выборки с нужным выходом. – Tanner

+0

Отредактированный вопрос – James

ответ

0

на основе данных и желаемого результирующем в вашем примере данных - это запрос я хотел бы написать:

select Datum, Product, sum(FebSales13.A_sales) as A_SalesFeb, 
sum(FebSales13.B_sales) as B_SalesFeb, sum(MaySales12.A_sales) as A_SalesMay, 
sum(MaySales12.B_sales) as B_SalesMay 
from 
    (select Datum, Product, A_sales, B_sales 
    from FebSales13) FebSales13 
inner join 
    (select Datum, Product, A_sales, B_sales 
    from MaySales13) MaySales13 
on FebSales13.Datum = MaySales12.Datum 
and FebSales13.Product = MaySales12.Product 
group by Datum, Product 
Смежные вопросы