试图从mysql中获取上个月的数据[重复]

This question already has an answer here:

I am trying to call last month data from mysql but it gives me the data from previous years as well, for example august 2011, august 2012 .... august 2015. I used different functions to get the interval of last month but no success. this means the Sum of order from database is also incorrect.

Query 1:

SELECT sku,
       order_date,
       sum(`order_total`) AS sales
FROM `tableOrder`
WHERE `order_status`='Shipped'
  AND MONTH(STR_TO_DATE(order_date, '%m/%d/%Y')) = MONTH(CURDATE() - INTERVAL 1 MONTH)
GROUP BY STR_TO_DATE(order_date, '%m/%d/%Y')
ORDER BY sales DESC

Query 2:

SELECT sku,
       order_date,
       sum(`order_total`) AS sales
FROM `tableOrder`
WHERE `order_status`='Shipped'
  AND MONTH(STR_TO_DATE(order_date, '%m/%d/%Y')) = MONTH(DATE_ADD(Now(), INTERVAL -1 MONTH))
GROUP BY STR_TO_DATE(order_date, '%m/%d/%Y')
ORDER BY sales DESC
</div>

Add an extra condition for the year:

SELECT sku,order_date,sum(`order_total`) as sales FROM `tableOrder` 
WHERE `order_status`='Shipped' 
    AND MONTH(STR_TO_DATE( order_date, '%m/%d/%Y' )) = MONTH(CURDATE() - INTERVAL 1 MONTH) 
    AND YEAR(order_date) = YEAR(NOW())
GROUP BY STR_TO_DATE( order_date, '%m/%d/%Y' ) 
ORDER BY sales desc