2016-12-30 4 views
0

У меня есть 2 таблицы:.SQL столбец сумма в одной таблице, где значение в другой таблице «S»

[rolls] 
tappi zone poids 
N1001 101 502 
N1002 102 502 
N1003 103 1008 
N1004 104 1008 

[zones] 
nom type 
101 P 
102 P 
103 S 
104 S 

То, что я хочу сделать, это сумма «катит» «POIDS» если «катится» «. зона»имеет тип 'S' (по таблице 'зон')

Выход должен быть 2016 (1008 + 1008)

+0

Подсказка: 'JOIN',' SUM() '. Что вы пробовали? –

+0

Это звучит как стандартная агрегация. С данными, которые вы опубликовали, что бы вы хотели выбраться из этого? –

+0

Я очень начинаю в sql, поэтому я искал какой-то ответ, но я не могу понять любой из них. Я ищу пример кода, чтобы узнать из него. –

ответ

1
SELECT SUM(t1.poids) 
FROM rolls t1 
INNER JOIN zones t2 
    ON t1.zone = t2.nom 
WHERE t2.type = 'S' 

Мы можем смело сделать INNER JOIN здесь, потому что, если записи из rolls не ма tch на что-нибудь в zones, тогда мы знаем, что это не может быть тип зоны S.

+1

Отказ от ответственности: Гордон ответил на это в своем голосе, прежде чем я написал этот ответ. –

+0

Большое спасибо! –

1
SELECT SUM(rolls.poids) FROM rolls JOIN zones WHERE zones.types ='S'; 
+1

Этот ответ будет улучшен, если вы добавите объяснение. –