My server is a DigitalOcean VPS and I have 60G hd, 4G ram, 4G swap file and connecting through mysql workbench on a 1Gig internet connection. The below query takes over 30 min before I cancel it. Many queries take 1-2 minutes which I feel is too long for how simple the query is. This query may not be optimized. Is there a way to optimize the query? How can I optimize query speed?
(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 10 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 11 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 20 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 21 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 27 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 30 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 40 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 50 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 60 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 70 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 80 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 81 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 82 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 90 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 95 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 96 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 1 AND departmentNumber = 97 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 10 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 11 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 20 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 21 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 27 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 30 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 40 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 50 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 60 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 70 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 80 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 81 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 82 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 90 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 95 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 96 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 3 AND departmentNumber = 97 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 10 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 11 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 20 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 21 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 27 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 30 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 40 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 50 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 60 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 70 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 80 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 81 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 82 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 90 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 95 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 96 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 10 AND departmentNumber = 97 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 10 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 11 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 20 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 21 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 27 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 30 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 40 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 50 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 60 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 70 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 80 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 81 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 82 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 90 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 95 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 96 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 11 AND departmentNumber = 97 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 10 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 11 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 20 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 21 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 27 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 30 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 40 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 50 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 60 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 70 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 80 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 81 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 82 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 90 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 95 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 96 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 16 AND departmentNumber = 97 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 10 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 11 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 20 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 21 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 27 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 30 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 40 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 50 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 60 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 70 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 80 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 81 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 82 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 90 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 95 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 96 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 17 AND departmentNumber = 97 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 10 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 11 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 20 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 21 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 27 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 30 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 40 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 50 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 60 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 70 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 80 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 81 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 82 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 90 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 95 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 96 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 18 AND departmentNumber = 97 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 10 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 11 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 20 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 21 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 27 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 30 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 40 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 50 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 60 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 70 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 80 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 81 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 82 order by unitsSold desc limit 30) union all (select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 90 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 95 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 96 order by unitsSold desc limit 30) union all(select * from movement where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day) AND StoreNumber = 19 AND departmentNumber = 97 order by unitsSold desc limit 30);
To summarize: There are nearly 300 of these being UNIONd
together:
SELECT *
from movement
where saleDate = date_sub(curdate(), interval WEEKDAY(curdate()) day)
AND StoreNumber = -- some number
AND departmentNumber = -- some other number
order by unitsSold desc
limit 30