2015-04-30 29 views
2

我有4個表,我想提取:idnumelocalitatemasina_idnr_inmatricularean_fabricatierafinariemarca,總結(quantity+deliver_quantity)total_quantity組由an_fabricatie,訂購marca,並把一些having clouse內加入4代表與組,爲了通過具有子句

我不知道如何做到這一點。

我的查詢如下,但我認爲是不正確的。

select c.id, c.nume,c.localitate,l.masina_id, i.nr_inmatriculare, i.an_fabricatie, 
i.rafinarie, m.marca from clienti c inner join livrari l on c.id = l.id inner join incarcari I on l.incarcare_id = l.livrari_id inner join masina m on i.id_marca = m.id, sum(select quantity, deliver_quantity) as total_quantity group by an_fabricatie having quantity >1000 order by marca; 

Incarcari table 
Id|livrari_id|id_marca|nr_inmatriculare|an_fabricatie|rafinarie|aviz_incarcare|quantity| 

Livrari table 
Id|masina_id|client_id|incarcare_id|deliver_quantity|aviz_livrare 

Masini table 
Id|numar_inmatriculare|marca|an_fabricatie| 

Clienti table 
Id|nume|localitate|date_add|date_upd| 
+0

請問您的查詢產生一個錯誤? – Matt

+0

是的。錯誤代碼1064你在你的SQL語法中有錯誤 –

+0

優秀,upvote和接受所以人們可以在將來看到 – Matt

回答

1
SELECT c.id, c.nume, c.localitate, l.masina_id, i.nr_inmatriculare, i.an_fabricatie, i.rafinarie, m.marca, (SUM(i.quantity) + SUM(l.deliver_quantity)) AS total_quantity 
FROM clienti c 
INNER JOIN livrari l ON c.id = l.id 
INNER JOIN incarcari i ON l.incarcare_id = i.livrari_id 
INNER JOIN masini m ON i.id_marca = m.id 
GROUP BY i.an_fabricatie, c.id, c.nume,c.localitate,l.masina_id, i.nr_inmatriculare, i.rafinarie, m.marca 
HAVING i.quantity > 1000 
ORDER BY m.marca DESC; 
+0

當我運行這個腳本它說:錯誤代碼1146表biblioteca.masina不存在。 biblioteca是我的數據庫。爲何涉及我的數據庫? –

+0

@DanutMarianGabrian現在嘗試,有一個錯字 – Matt

+0

對於性能,最好使用'WHERE i.quantity> 1000'而不是擁有。 where子句必須在GROUP BY – Gervs