2015-10-06 2 views
0

Я искал, но не нашел свой точный случай, поэтому я прошу спросить здесь. Существует запрос (который я, к сожалению, не могу раскрыть), что имеет такую ​​структуру:SQL: Как выбрать и подстроить столбцы в этом запросе?

WITH MAINRESULT AS 
(
    SELECT ... FROM ... WHERE...GROUP BY... 
) 
SELECT Name, SUM(MAINRESULT.Amount1 * AnotherAmount) AS MySum FROM MAINRESULT 
WHERE ..... 
GROUP BY Name, AnotherAmount 
ORDER BY Name 

Теперь, я получаю что-то вроде этого:

**Name** **MySum** 
    A   5 
    A   5 
    B   1 
    C   2 

Но я хочу, чтобы этот результат SUM-мед так что я получаю:

**Name** **MySum** 
    A   10 
    B    1 
    C    2 

Как это сделать, изменяя строгу запроса, который у меня есть? Пробовал добавлять «SELECT FROM» вокруг как WITH-запроса parn, так и второго SELECT под ним, но он говорит, что у меня есть синтаксические ошибки.

ОБНОВЛЕНИЕ: Я слишком долго смотрел на этот запрос, я пропустил, что AnotherAmount не должен быть включен в часть GROUP BY. Спасибо всем за то, что указали так быстро!

+1

Почему GROUP BY AnotherAmount? – jarlh

+0

@jarlh Извините, вы правы. Я обновил вопрос сейчас. – 10100111001

+0

То, что вы показываете нам, не имеет синтаксических ошибок ... – jarlh

ответ

0

Похоже, что вам нужно удалить GROUP BY Name, AnotherAmount и оставить только GROUP BY Name в вашем запросе. В противном случае ваши результаты группируются не только по имени, но и по другому полю AnotherAmount - это может привести к неожиданному результату, который вы получаете.

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