2015-12-03 5 views
0

У меня есть код ниже, где я хочу видеть продажи для UPC в течение определенного периода времени. Как вы можете видеть, у меня есть Select Distinct для запуска, но он все еще показывает несколько записей для одного и того же UPC.Выберите Distinct, показывающий несколько значений одной и той же записи

Я бы хотел, чтобы он показывал UPC, а затем суммировал значения для UPC, если их несколько. Любое понимание?

У меня есть код, указанный ниже. У меня есть комментарий «Group By», потому что каждый раз, когда я пытался группировать UPC, он вызывал у меня ошибку, в которой говорилось: «Выбранные неагрегатные значения должны быть частью связанной группы».

SELECT DISTINCT ir.region, 
       ir.upc, 
       ir.item_long_description, 
       ir.team_name, 
       ir.subteam_name, 
       brand, 
       p.sale_units, 
       p.sale_value 
FROM prd_sales_cost_summary_v p 
     JOIN item_region_v ir 
     ON p.upc = ir.upc 
      AND p.pos_dept = ir.pos_dept --AND p.store_number = ir.store_number 
WHERE ir.subteam_name = 'Frozen' 
     AND 
     --prd_idnt BETWEEN 201601 AND 201602 AND 
     prd_idnt = 201601 
     AND 
     --Change the region if needed 
     ir.region = 'RM' 
--GROUP BY 2 
ORDER BY p.sale_units DESC 

ответ

3

«Выбранные без агрегатных значений должны быть частью соответствующей группы.»

Это означает, что если вы поместите поле в список SELECT, вы должны поместить его в группу.

Так

SELECT fieldA, fieldB, fieldC, SUM(*) 
FROM YourTable 
GROUP BY fieldA, fieldB, fieldC 

Также обратите внимание на ваш выбор не имеет какой-либо функции agreagation COUNT()SUM()AVG()

+0

Вы определенно правы. У меня была сумма() по единицам продажи и ценностям, но она не переносилась. Во всяком случае, использовала логику, которая у вас была, и теперь она работает. –

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