Como alterar dinamicamente a consulta sql para adicionar números da semana?
Eu tenho uma consulta sql em que preciso fornecer os números de seis semanas à direita em minha INcláusula. Removi outros detalhes como parte desta consulta apenas para manter as coisas simples. Como você pode ver abaixo, tudo está codificado a partir de agora. E toda semana eu mudo a consulta abaixo e adiciono um novo número de semana e removo o mais antigo para continuar nas últimas 6 semanas.
AND data.process_holder IN ('21', '22', '23', '24', '25', '26')
Como posso tornar essa consulta dinâmica de modo que ela possa alterar automaticamente os números da semana para mim, continuando por seis semanas. Por exemplo: Para a semana atual, deve levar isso sempre que for executado. E da mesma forma deve acontecer a cada semana.
AND data.process_holder IN ('22', '23', '24', '25', '26', '27')
Isso é possível fazer? Estou usando o banco de dados AWS Redshift.
Respostas
Você pode tentar comparar o número da semana de process_holdercom o número da semana da data atual:
SELECT *
FROM yourTable
WHERE ... AND
process_holder::integer BETWEEN DATE_PART(w, CURRENT_DATE) - 5 AND
DATE_PART(w, CURRENT_DATE);