2015-05-09 6 views
0

в моей базе данных У меня есть 2 стола. table1 я есть ID и NAMESfusion 2 таблицы с внутренним соединением

table2 я есть ID, IDASSOCIATION, QUANTITY

так у меня есть 2 имен в table1: JOHN и индюки

и в table2 я есть 3 Lignes john, 1 том, 1 john, 1

Номбр один является количество

в мой результат я хочу получить

джон = 2 и TOM = 1

так я делаю это:.

SQL = «SELECT t1 *, t2 .IDASSOCIATION (SELECT SUM (t2.id_qte) FROM associationdepotarticle t2 WHERE t1.fusiontable = t2.fusiontable GROUP BY t2.IDASSOCIATION) как id_qte FROM articletable t1, associationdepotarticle t2 ";

, но я не получаю это:

джон = 2 том = 1

почему? то, что я буду делать, мне нужна коррекция пожалуйста

ответ

0

Вы можете просто join таблицы вместе и использовать sum:

select t1.name, sum(t2.quantity) 
from table1 t1 
    join table2 t2 on t1.id = t2.idassociation 
group by t1.name 

Это не совсем ясно из данных образцов, что присоединиться, но я предполагаю, что это idassociation поле. Если вы хотите вернуть эти имена в table1, которые не указаны в table2, используйте outer join.

+0

спасибо за ответ, но я получаю сообщение об ошибке это мой SQL с кодом:. SQL = «SELECT t1 *, SUM (t2.id_qte) FROM articletable t1 INNER JOIN t2 associationdepotarticle на t1.fusiontable = t2.fusiontable GROUP BY t1.designation "; Я получаю сообщение об ошибке id_qte dost:/ idassociation - всего лишь пример, у меня есть «fusiontable» – thedarkside

+1

@thedarkside - трудно сказать, можете ли вы создать sqlfiddle.com с примером? Извините, но я не совсем уверен в 'fusiontable' ... – sgeddes