Como alterar dinamicamente a consulta sql para adicionar números da semana?

Oct 20 2020

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

1 TimBiegeleisen Oct 20 2020 at 10:01

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);