Możesz zrobić coś takiego*:
select * from (select symbol_name , (prevclose_val-close_val) as losers,'daily' as `type` from historical_data where current_day >= '2015-12-14' order by losers asc limit 10 ) as sub_daily
union
select * from (select symbol_name , (prevclose_val-close_val) as losers,'weekly' as `type` from historical_data where current_day >= '2015-12-7' order by losers asc limit 10 ) as sub_weekly
union
select * from (select symbol_name , (prevclose_val-close_val) as losers,'monthly' as `type` from historical_data where current_day >= '2015-11-14' order by losers asc limit 10 ) as sub_monthly;
Przy okazji, naprawdę powinieneś zmienić swoje pole daty z „varchar” na „DATE” lub „DATETIME” i użyć yyyy-mm-dd
format dla twoich dat. W ten sposób możesz używać MySQL do wykonywania obliczeń w swoim dniu.
* to zapytanie wymaga Twojego current_day
pole na date
lub datetime
typ.