2010-01-29 3 views
0

Возникли данные, как показано нижеполучить форматированный вывод

ItemCode SalesPrice PricingLevel 
ITEM-000001 451.000000 Barons 
ITEM-000001 432.000000 Guild 

Есть ли способ, чтобы получить следующий вывод:

ItemCode  Barons  Guild 
ITEM-000001 451  432 
+0

Сколько у вас различных Ценообразований? Я могу видеть 2 значения для PricingLevel (Barons, Guild). Может ли быть больше предметов в этом списке? – shahkalpesh

+0

Только 2, он работает нормально. –

ответ

1
SELECT ItemCode, 
Sum(Case when PricingLevel = 'Barons' Then SalesPrice else 0 end) as Barons, 
Sum(Case when PricingLevel = 'Guild' Then SalesPrice else 0 end) as Guild 
FROM myTable 
GROUP BY ItemCode 
+0

Привет shahkalpesh, я использую ваш запрос, потому что я чувствую, что он быстрее, чем выше, потому что в вашем запросе есть только один select & в выше 3 выбирает, поэтому я считаю, что лучше использовать ваше решение. спасибо. –

0

Просто попробуйте (примечание: как я не знаю, ваше имя таблицы , я назвал его "Items"):

SELECT DISTINCT I1.ItemCode, 
     (SELECT SalesPrice FROM Items I2 WHERE I2.ItemCode = I1.ItemCode AND I2.PricingLevel = 'Barons') Barons, 
     (SELECT SalesPrice FROM Items I3 WHERE I3.ItemCode = I1.ItemCode AND I3.PricingLevel = 'Guild') Guild 
FROM Items I1 

Для не показаны десятичных нулей, используйте следующее:

SELECT DISTINCT I1.ItemCode, 
     (SELECT CAST(SalesPrice AS DECIMAL(10,0)) FROM Items I2 WHERE I2.ItemCode = I1.ItemCode AND I2.PricingLevel = 'Barons') Barons, 
     (SELECT CAST(SalesPrice AS DECIMAL(10,0)) FROM Items I3 WHERE I3.ItemCode = I1.ItemCode AND I3.PricingLevel = 'Guild') Guild 
FROM Items I1 
+0

Привет, Tufo, он работает нормально, но работает ли он отлично, т. Е. Производительность, если у меня есть огромные данные? –

+0

, если у вас есть только те столбцы, поэтому он будет работать нормально, это будет 1 выбор для всей таблицы плюс 2 для каждого элемента, без проблем. Но если у вас будет больше столбцов, производительность может быть проблемой. Сколько регистров PricingLevel у вас есть? – Tufo

+0

В этой таблице у меня есть 15 столбцов, но pricinglevel исправлен –

Смежные вопросы