0
我不确定它是否可能,但是我可以使用set vars来避免在以下查询上重复日期范围吗?那么我只会声明TY和LY一次并在查询中重用?在日期范围之间的mysql变量避免重复
// ThisYear -- '2013-02-04 00:00:00' AND '2013-02-10 23:59:59'
// LastYear -- '2012-02-06 00:00:00' AND '2013-02-12 23:59:59'
SELECT
count(*) as total_num_bookings,
SUM(if(book_date BETWEEN '2013-02-04 00:00:00' AND '2013-02-10 23:59:59', 1, 0)) AS num_bookings_ty,
SUM(if(book_date BETWEEN '2012-02-06 00:00:00' AND '2012-02-12 23:59:59', 1, 0)) AS num_bookings_ly,
sj.pu_country
FROM
pc_tech.sales_journal_default sj
WHERE (book_date BETWEEN '2013-02-04 00:00:00' AND '2013-02-10 23:59:59') OR (book_date BETWEEN '2012-02-06 00:00:00' AND '2012-02-12 23:59:59')
group by pu_country
order by total_num_bookings DESC
LIMIT 25;
它必须是4个变量?今年是两年还是去年? – 2013-02-20 16:42:34
@Robbo_UK - 你可以用准备好的语句来完成,如果那样的话。看到我更新的答案。 – Raad 2013-02-20 17:11:15