2016-06-22 5 views
1

Я борюсь с базой данных Access: У меня есть большая база данных с заголовками TAG, ZST, KL и R1H00 до R1H23 (24 из них, каждый на один час в день), и мне нужно, чтобы получить определенный набор данных из него:SQL select, sum and group

SELECT TAG, ZST, (R1H00 + R1H01 + R1H02 + R1H03 + R1H04 + R1H05 + R1H06 + R1H07 + R1H08 + R1H09 + R1H10 + R1H11 + R1H12 + R1H13 + R1H14 + R1H15 + R1H16 + R1H17 + R1H18 + R1H19 + R1H20 + R1H21 + R1H22 + R1H23) AS TOTAL 
FROM Klassendaten 
WHERE KL = "SWISS7_PW" 

до сих пор так хорошо, но результат содержит много элементов с одинаковым идентификатором (ZST). Мне нужно суммировать все записи с тем же ZST, но до сих пор я не мог этого сделать. (Я пытался использовать оператор GROUP BY, но это только приводит к ошибкам) ​​

Любые опытные люди SQL здесь, которые могли бы помочь мне в этом?

+0

Если предположить, что 'tag' столбцы также одинаковы, то вам нужно использовать' sum' вокруг общего и добавить 'group by tag, zst' в конце ... – sgeddes

+0

Какая СУБД вы используете? –

ответ

1

использование группы по

SELECT TAG, ZST, sum(R1H00 + R1H01 + R1H02 + R1H03 + R1H04 + R1H05 + R1H06 + R1H07 + R1H08 + R1H09 + R1H10 + R1H11 + R1H12 + R1H13 + R1H14 + R1H15 + R1H16 + R1H17 + R1H18 + R1H19 + R1H20 + R1H21 + R1H22 + R1H23) AS TOTAL 
FROM Klassendaten 
WHERE KL = "SWISS7_PW" 
GROUP BY TAG, ZST; 
0

Используйте функцию Sum()

SELECT TAG, ZST, Sum(R1H00 + R1H01 + R1H02 + R1H03 + R1H04 + R1H05 + R1H06 + R1H07 + R1H08 + R1H09 + R1H10 + R1H11 + R1H12 + R1H13 + R1H14 + R1H15 + R1H16 + R1H17 + R1H18 + R1H19 + R1H20 + R1H21 + R1H22 + R1H23) AS TOTAL 

FROM Klassendaten 
where ZST = '(Whatever it is)' 
group by tag, zst