I have this query:
SELECT *
FROM ((orders_books
JOIN books ON orders_books.id_book = books.id)
JOIN orders ON orders_books.id_order=orders.id)
JOIN users ON user_id=users.id
WHERE date >='2019-03-1' AND date <= '2019-03-31';
Query result: https://image.prntscr.com/image/s3ngzzYrSd27mFib9HbLmA.png
I find number of orders:
SELECT name, date, SUM(book_price)
FROM ((orders_books
INNER JOIN books ON orders_books.id_book = books.id)
INNER JOIN orders ON orders_books.id_order=orders.id)
INNER JOIN users ON user_id=users.id
WHERE date >='2019-03-1' AND date <= '2019-03-31';
[Amount for all orders] : https://image.prntscr.com/image/o88Hf4uKSHGuZ2ESUECzuA.png
But I need to find the order amount separately for each order.
How about:
SELECT id_order, SUM(book_price)
FROM ((orders_books
INNER JOIN books ON orders_books.id_book = books.id)
INNER JOIN orders ON orders_books.id_order=orders.id)
INNER JOIN users ON user_id=users.id
WHERE date >='2019-03-1' AND date <= '2019-03-31'
GROUP BY id_order;
SELECT orders.id, SUM(book_price)
FROM ((orders_books
INNER JOIN books ON orders_books.id_book = books.id)
INNER JOIN orders ON orders_books.id_order=orders.id)
INNER JOIN users ON user_id=users.id
WHERE date >='2019-03-1' AND date <= '2019-03-31'
GROUP BY order_id;
If you need the sum for order.id then use group by orders.id
SELECT orders.id SUM(book_price)
FROM orders_books
INNER JOIN books ON orders_books.id_book = books.id
INNER JOIN orders ON orders_books.id_order=orders.id
WHERE date >='2019-03-1' AND date <= '2019-03-31'
group by orders.id
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.