2015-11-02 3 views
0

Ниже мой SQL запросСинтаксическая ошибка при использовании подзапросов

SELECT parts.product_code AS PC,SUM(x.goods_qty) AS Qty, SUM(x.price * x.goods_qty)/SUM(x.goods_qty) AS Avg_Cost, parts.cost_price AS Avg_Cost1, parts.cost_price * parts.bulk_qty AS Total_Cost_Price1, SUM(x.price * x.goods_qty)/SUM(x.goods_qty) * parts.bulk_qty AS Total_Cost_Price, parts.sales_price * parts.bulk_qty AS Total_Sales_Price 
FROM parts 
LEFT JOIN received_goods_details x ON x.part_id = parts.id 
LEFT JOIN invoice_details ON invoice_details.part_id = parts.id 
WHERE parts.bulk_qty >0 

AND 
id IN 

(SELECT * 
FROM `received_goods_details` 
WHERE part_id = parts.id 
ORDER BY id DESC 
LIMIT 5) 


GROUP BY parts.id 
LIMIT 0 , 30 

I am getting a error #1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' 

я отредактировал мой SQL-запрос немного, удаляется один пункт, где

я пытался, как это, но он не работает слишком. Здесь я попытался использовать подзапрос внутри самого оператора select.

SELECT parts.product_code AS PC, parts.part_no AS PO, parts.id AS part_id, parts.part_name AS Part_Name, parts.bulk_qty AS Stock, parts.cost_price AS LPP, parts.sales_price AS Sales_Price, SUM(x.goods_qty) AS Qty, SUM(x.price * x.goods_qty)/SUM(x.goods_qty) AS Avg_Cost, parts.cost_price AS Avg_Cost1 FROM (SELECT * 
FROM received_goods_details 
WHERE part_id = 8 
ORDER BY id DESC 
LIMIT 5) , 

parts.cost_price * parts.bulk_qty AS Total_Cost_Price1, SUM(x.price * x.goods_qty)/SUM(x.goods_qty) * parts.bulk_qty AS Total_Cost_Price, parts.sales_price * parts.bulk_qty AS Total_Sales_Price 
FROM parts 
LEFT JOIN received_goods_details x ON x.part_id = parts.id 
LEFT JOIN invoice_details ON invoice_details.part_id = parts.id 
WHERE parts.bulk_qty >0 
GROUP BY parts.id 
LIMIT 0 , 30 

теперь я получаю сообщение об ошибке, если

ВЫБРАТЬ parts.product_code AS PC, parts.part_no AS ПО, parts.id А.С. part_id, parts.part_name AS part_name, parts.bulk_qty AS складе, детали .cost_price AS LPP, parts.sales_price AS Sales_Price, SUM (x.goods_qty) AS Qty, SUM (x.price * x.goods_qty)/SUM (x.goods_qty) AS Avg_Cost, parts.cost_price AS Avg_Cost1 FROM (SELECT * FROM received_goods_details WHERE y.part_id = parts.id ORDER BY id DESC LIMIT 5) AS T,

1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса использовать вблизи '* parts.bulk_qty AS Total_Cost_Price1, SUM (x.price * x.goods_qty)/SUM (x.goo' в строке 7

+2

У вас есть два 'where' в вашем основном запросе:' WHERE parts.bulk_qty> 0 И WHERE id IN'. И 'select *' в подзапросе нет хорошего стиля, лучше использовать что-то как 'SELECT id' –

ответ

0
SELECT parts.product_code AS PC,SUM(x.goods_qty) AS Qty, SUM(x.price * x.goods_qty)/SUM(x.goods_qty) AS Avg_Cost, parts.cost_price AS Avg_Cost1, parts.cost_price * parts.bulk_qty AS Total_Cost_Price1, SUM(x.price * x.goods_qty)/SUM(x.goods_qty) * parts.bulk_qty AS Total_Cost_Price, parts.sales_price * parts.bulk_qty AS Total_Sales_Price 
FROM parts 
LEFT JOIN received_goods_details x ON x.part_id = parts.id 
LEFT JOIN invoice_details ON invoice_details.part_id = parts.id 
WHERE parts.bulk_qty >0 AND id IN 
(SELECT * 
FROM `received_goods_details` 
WHERE part_id = parts.id 
ORDER BY id DESC 
LIMIT 5) GROUP BY parts.id LIMIT 0 , 30 

Удалить второй раз.

+0

привет, я попробовал ур ответить. Теперь я получаю ошибку, подобную этой # 1235 - Эта версия MySQL еще не поддерживает« LIMIT & IN/ALL/ANY/SOME subquery » – Bloodhound

+0

Хорошо отличный и второй где также. –

+0

извините, я не получил u. – Bloodhound

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