Pergunta

Tenho uma pesquisa generalizada, onde estou procurando preços médios nos vários dias da semana. O problema é que não tenho certeza de como pedir um alcance estranho. 1-7 funciona bem, (de segunda a domingo), mas se o usuário passar um domingo para uma terça-feira ... ou seja, 7-2, não funciona.

1-7 (1,2,3,4,5,6,7) 7-2 (7,1,2)

etc.

De que outra forma posso passar por um intervalo mais inteligente ou algo além?

SELECT item_id, DAYOFWEEK(bookdate) as date, bookdate, AVG(price) AS price 
FROM `availables` WHERE (item_id = 16 and DAYOFWEEK(bookdate) BETWEEN 2 AND 7) 
GROUP BY DAYOFWEEK(bookdate)
Foi útil?

Solução

Talvez o que você está procurando é a sintaxe:

SELECT item_id, DAYOFWEEK(bookdate) as date, bookdate, AVG(price) AS price 
FROM `availables` WHERE (item_id = 16 and DAYOFWEEK(bookdate) IN (7,1,2)) 
GROUP BY DAYOFWEEK(bookdate)

Outras dicas

Faça isso com uma cláusula 'in', assim: DayofWeek (Data Bookdate) em (1,2,7)

Isso também permite a flexibilidade de datas não contínuas (selecione registros para segunda e sexta-feira, por exemplo)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top