2013-08-07 6 views
0

Я новичок в использовании SQL и имеют следующую таблицу:MySql сумма по значению

TABLEA

id|fk|value 
----------- 
1 |1 |100 
2 |1 |200 
3 |2 |300 
4 |2 |400 

Я пытался, в другой таблице, показывает следующее:

TableB

id|sum 
------ 
1 |300 
2 |700 

Где строка i в TableB соответствует сумме всех fk = i в TableA.

Может ли кто-нибудь указать мне в правильном направлении? Спасибо!

+0

Покажите нам, что вы пробовали до сих пор. – Mihai

+0

вы пытаетесь сделать таблицу B фактической таблицей или просто результатом запроса –

+0

Я пытаюсь сделать таблицу B реальной таблицей - НЕ является результатом запроса – epr8n

ответ

6

Предполагаю, что TableB - это результат запроса, а не таблица SQL. Тогда вам нужен запрос как

select fk, sum(value) 
from tableA 
group by fk 

Если вы хотите создать отдельную таблицу, то вы можете просто сделать

create table TableB as SELECT_ABOVE 

Вам не нужно указывать столбцы для новой таблицы, так как они будут приняты от select

+1

Из-за функции GROUP BY по совокупности SUM суммирует только каждый группа. –

+0

Я действительно пытаюсь сделать отдельную таблицу, чтобы показать результаты суммы, а не результат запроса – epr8n

0
create tableB(fk int, sum int) 
    select fk, sum(value) 
    into #tableB 
    from 
    tableA 
    group by fk  
  • это показывает:
  • TableB
  • идентификатор | сумма
  • 1 | 300
  • 2 | 700
Смежные вопросы