دریافت اطلاعات از دو جدول با تحلیل کمی پیچیده
سلام بنده دو تا جدول دارم و خروجی رو که میخوام پایین نوشتم میخواستم بدونم کد sql برای mysql تا اینکه بتونم این خروجی رو بگیرم چیه
products :
+----+---------------------+---------------------+
| id | start_date | end_date |
+----+---------------------+---------------------+
| 1 | 2013-04-27 00:00:00 | 2013-05-31 00:00:00 |
| 2 | 2013-04-01 00:00:00 | 2013-05-31 00:00:00 |
+----+---------------------+---------------------+
prices :
+----+------+------------------+------+-------+----------+--------+
| id | p_id | title | main | price | quantity | bought |
+----+------+------------------+------+-------+----------+--------+
| 1 | 1 | option1 product1 | 0 | 1000 | 100 | 20 |
| 2 | 1 | option2 product1 | 1 | 2000 | 30 | 25 |
| 3 | 2 | option1 product2 | 1 | 3000 | 70 | 70 |
| 4 | 2 | option2 product2 | 0 | 3000 | 50 | 40 |
+----+------+------------------+------+-------+----------+--------+
example output :
+----+------------------+-------+----------+--------+---------------+-------------+
| id | title | price | quantity | bought | sum(quantity) | sum(bought) |
+----+------------------+-------+----------+--------+---------------+-------------+
| 1 | option2 product1 | 2000 | 30 | 25 | 130 | 45 |
| 2 | option1 product2 | 3000 | 70 | 70 | 120 | 110 |
+----+------------------+-------+----------+--------+---------------+-------------+
خوب توضیحش اینه که میخوام اول product هایی رو بگیرم که که مجموع quantity هاشون بزرگتر از مجموع bought هاشون باشه دوم اینکه فقط میخوام title و price و quantity اون price ای که main ش مساوی 1 رو بگیرم
نقل قول: دریافت اطلاعات از دو جدول با تحلیل کمی پیچیده
بسم الله الرحمن الرحیم
با سلام
نقل قول:
میخوام اول product هایی رو بگیرم که که مجموع quantity هاشون بزرگتر از مجموع bought هاشون باشه
SELECT Product.id,title,price,quantity,bought,SUM(quantit y),SUM(bought)
FROM Product
INNER JOIN Price
ON Product.id=P_id
WHERE SUM(quantity)>SUM(bought)
نقل قول:
دوم اینکه فقط میخوام title و price و quantity اون price ای که main ش مساوی 1 رو بگیرم
SELECT title,price,quantity
FROM Price
WHERE main=1
موفق باشید.
نقل قول: دریافت اطلاعات از دو جدول با تحلیل کمی پیچیده
حاجی اول تست کن بعد بگو این کار نمیکنه
http://sqlfiddle.com/#!2/43a35/31 توابع Aggregate رو نمی تونی تو where اجرا کنی باید از group استفاده کنی اینو خودم میدونم مشکل اینجاست که این دو تا دستور رو باهم میخوام اجرا کنم یعنی یک query باشه
نقل قول: دریافت اطلاعات از دو جدول با تحلیل کمی پیچیده
داداش اینی که تو میخوای این خروجی که گذاشتی رو نمیده!
SELECT *
FROM (
SELECT products.`id` , `title` , `main` , `price` , sum( `quantity` ) AS Qnt, sum( `bought` ) AS Bought
FROM products
LEFT JOIN prices ON products.`id` = `p_id`
GROUP BY `p_id`
HAVING sum( `quantity` ) > sum( `bought` )
) AS t
WHERE `main` =1
کدی که توی FROM هست رو میتونی جدا بزنی ببینی main چه مقادیری میگیره، بعد اگر شرط main = 1 رو اعمال کنی اونوقت فقط 1 خروجی میده