Forum Moderators: open
SELECT DATE_FORMAT(s.date,'%b-%y') as mdate,
DATE_FORMAT(s.date,'%m') as omdate,
DATE_FORMAT(s.date,'%y') as oydate,
si.product_name,
SUM(FLOOR(si.quantity)) as quantity
FROM sale_items si,
sales s,
products p,
categories c
WHERE s.warehouse_id = si.warehouse_id
AND s.id = si.sale_id
AND s.warehouse_id BETWEEN 1 AND 50
AND p.category_id = c.id
AND si.product_id = p.id
AND c.id = 4
AND s.date >= CURDATE() - INTERVAL 6 MONTH
GROUP BY si.product_id,mdate
ORDER BY si.product_name, omdate,oydate DESC ORDER BY si.product_name DESC, oydate ASC, omdate DESC
product A, Feb-23, 200
product A, Jan-23, 100
product A, Dec-22, 300
product B, Feb-23, 80
....
product A, Feb-23, 200
product M, Feb-23, 100
product Z, Feb-23, 300
product D, Feb-23, 80
SELECT DATE_FORMAT(s.date,'%b-%y') as mdate,
DATE_FORMAT(s.date,'%m') as omdate,
DATE_FORMAT(s.date,'%y') as oydate,
si.product_name,
SUM(FLOOR(si.quantity)) as quantity
FROM sale_items si,
sales s,
products p,
categories c
WHERE s.warehouse_id = si.warehouse_id
AND s.id = si.sale_id
AND s.warehouse_id BETWEEN 1 AND 50
AND p.category_id = c.id
AND si.product_id = p.id
AND c.id = 4
AND s.date >= CURDATE() - INTERVAL 6 MONTH
GROUP BY si.product_id,mdate
ORDER BY si.product_name, omdate,oydate DESC
SELECT p.id, p.name, p.code, IFNULL(si.qty,0) as qty
FROM products p
LEFT JOIN (
SELECT SUM(FLOOR(ssi.quantity)) as qty, ssi.product_id
FROM sale_items ssi, sales ss
WHERE ss.id = ssi.sale_id
AND
ss.date >= CURDATE() - INTERVAL 1 MONTH
GROUP BY ssi.id
) as si
ON p.id = si.product_id
WHERE p.category_id = " . $catid . "
GROUP BY p.id