?- replace_at(3,0,[A,B,C,D,E,F],Xs), A=1,B=2,C=3,D=4,E=5,F=6.
A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, Xs = [1,2,0,4,5,6] ;
false.
我想最小化查询执行时间。检索数据需要很长时间。
答案 0 :(得分:2)
您可以像这样使用CASE
并删除使用joins
。
SELECT
sum(CASE WHEN exacttime >= '2015-06-29 14:29:36' THEN todayssale ELSE 0 END) as sale1
sum(CASE WHEN exacttime >= '2015-06-23 14:29:36' THEN todayssale ELSE 0 END) as sale2
sum(CASE WHEN date>='2015-06-29' THEN todayssale ELSE 0 END) as sale3
FROM sale_details USE index (index_sale)
WHERE productid='242431'
AND (exacttime >= '2015-06-23 14:29:36' OR date>='2015-06-29')
答案 1 :(得分:0)
尝试以下
SELECT
(SELECT Sum(todayssale) FROM sale_details WHERE productid='242431' AND exacttime >= '2015-06-29 14:29:36') as sale1,
(SELECT Sum(todayssale) FROM sale_details WHERE productid='242431' AND exacttime >= '2015-06-23 14:29:36') as sale2 ,
(SELECT Sum(todayssale) FROM sale_details WHERE productid='242431' AND date >= '2015-06-29') as sale3