Estou desenvolvendo um sistema e estou esbarrando em uma consulta SQL que consiste em o usuário pesquisar por Data e terá a opção de escolher se a consulta será feita adicionando Final de Semana a essas datas, excluindo o final de semana ou só consultando o Final de Semana.
No caso, tenho uma View que será usada para esta aplicação. O problema é que ela não tem um campo específico para o dia da semana, então tive que fazer um DatePart.
O problema é que quando eu utilizo com outros elementos da consulta, da erro nela.
Já tentei dentro da Query, com Join, com Union, com Having, criando um Banco auxiliar para comparar e nada. Alguém poderia me explicar de como isso poderia ser feito?
Segue abaixo o código das duas tabelas.
SELECT [DT_ABERT_OPER], DATEPART(weekday, [DT_ABERT_OPER]) AS
DIA_DA_SEMANA
FROM [dbo].[reavw001_ocorrencias_xxxxx] WHERE [DT_ABERT_OPER]
BETWEEN '2017-11-03' AND '2017-11-05'
No Caso, fiz essa consulta teste para retornar o DatePart dos dias 03 ao 05. Retornou 6 para as ocorrências do dia 03(Sexta), 7 para as do dia 4(Sábado) e 1 para o Domingo, o problema é que a consulta final será uma média destas ocorrências e o total de horas que ela ficou fora. E nisso, o dia da semana não está se encaixando.
Segue abaixo a consulta final que preciso encaixar a escolha de Final de Semana.
SELECT GITEC, SUM (DATEDIFF (minute,INICIO,DH_ULTIMA_CATEGORIZACAO))
as Soma_tempo,
AVG (DATEDIFF (minute,INICIO,DH_ULTIMA_CATEGORIZACAO)) as Media_tempo
FROM [readb004].[dbo].[reavw001_ocorrencias_xxxxxx] WHERE
([DT_ABERT_OPER]
BETWEEN '2017-11-03' AND '2017-11-06 23:59:59') GROUP BY GITEC order
by GITEC DESC
O que poderá ser feito para solucionara isso? Uma procedure ou tem algum outro jeito?