2016-11-28 3 views
0

У меня есть одна небольшая проблема ...Multiple SUM в одном Синтаксис

У меня есть 2 separeted вопросы SQL:

1:

SELECT SUM(iloscrec*ilosc/100) AS iloscsur, surowiec, Produkt 
FROM receptura 
    JOIN produkcjadb ON(produkcjadb.Produkt = receptura.kolor) 
WHERE data_zakonczenia >= CURRENT_DATE 
GROUP BY surowiec 

2:

SELECT SUM(ilosccal) AS ilosc, material, jednostka 
FROM surowce 
WHERE magazyn='G' || magazyn='K' || magazyn='S' || magazyn='P' || magazyn='PROUT' || 
     magazyn='W' || magazyn='OR' 
GROUP BY material 

И теперь мой вопрос: могу ли я связать этот вопрос 2 в одном и SELECT рядах со второго вопроса, где они совпадают с 1 вопросом WHERE

material (secondquestion) = surowiec (from1question) 

им пытаются о 5hours, но до сих пор у меня есть SQL ошибка синтаксиса

Спасибо заранее!

+1

Общее правило GROUP BY гласит: если указано предложение GROUP BY, каждая ссылка столбца в списке SELECT должна либо идентифицировать столбец группировки, либо быть аргументом функции набора! – jarlh

+0

Помогите нам помочь - делитесь своими структурами таблиц, примерами данных и результатами, которые вы пытаетесь получить. – Mureinik

ответ

0

Не уверен, что я понимаю проблему. Это поможет, если вы предоставите скрипт для создания структур и вставьте данные примера, и если вы покажете нам ожидаемые результаты, но в любом случае, я думаю, вы просто хотите использовать подзапросы, например. что-то вроде этого:

select ... 
from (SELECT SUM(iloscrec*ilosc/100) AS iloscsur, surowiec, Produkt 
     FROM receptura 
     JOIN produkcjadb ON(produkcjadb.Produkt = receptura.kolor) 
     WHERE data_zakonczenia >= CURRENT_DATE 
     GROUP BY surowiec 
    ) t1 join (
     SELECT SUM(ilosccal) AS ilosc, material, jednostka 
     FROM surowce 
     WHERE magazyn='G' || magazyn='K' || magazyn='S' || magazyn='P' || magazyn='PROUT' || magazyn='W' || magazyn='OR' 
     GROUP BY material 
    ) t2 
     on t2.material = t1.surowiec 
0

Ааа, конечно, это моя вина

receptura 
-surowiec 
-iloscrec 
-kolor 

produkcjadb 
-Produkt 
-Ilosc 

surowce 
-material 
-ilosccal 
-magazyn 

и теперь мне нужно выбрать

1:SUM(iloscrec*ilosc/100) from receptura and produkcjadb where Produkt=kolor 
2:SUM(ilosccal) FROM surowce Where magazyn='G' || magazyn='K' || magazyn='S' || magazyn='P' || magazyn='PROUT' || 
    magazyn='W' || magazyn='OR' 
3: matched this row where material(surowce)=surowiec(receptura) 

Есть ли шанс?

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