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