Bom dia pessoal,
Estou precisando da ajuda de voce para saber se é possível utilizar a função IN em uma declaração e como usa-la pois estou tentando criar está variável e não está dando certo,tenho vários select e para não ter que ficar alterando em todos os select gostaria de um variável que fizesse está função.
Segue 2 query como exemplo
DECLARE @CODFILIAL VARCHAR(29)
DECLARE @DTINICIAL VARCHAR(8)
DECLARE @DTFINAL VARCHAR(8)
SET @CODFILIAL IN('16','30','40','46','51','52','60','70','72','73')
-- DESPESAS FIXAS
SELECT
'DESPESA FIXAS',
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '16' THEN E2_VALOR else 0 END)) F_16,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '30' THEN E2_VALOR else 0 END)) F_30,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '40' THEN E2_VALOR else 0 END)) F_40,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '46' THEN E2_VALOR else 0 END)) F_46,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '51' THEN E2_VALOR else 0 END)) F_51,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '52' THEN E2_VALOR else 0 END)) F_52,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '60' THEN E2_VALOR else 0 END)) F_60,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '70' THEN E2_VALOR else 0 END)) F_70,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '72' THEN E2_VALOR else 0 END)) F_72,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '73' THEN E2_VALOR else 0 END)) F_73
FROM
SI3010 SI3
LEFT OUTER JOIN SED010 SED ON
SED.D_E_L_E_T_ = ' ' AND ED_CCD = I3_CUSTO
LEFT OUTER JOIN SE2010 SE2 ON
SE2.D_E_L_E_T_ = ' '
AND E2_FILIAL = I3_FILIAL
AND E2_NATUREZ = ED_CODIGO
AND E2_BAIXA BETWEEN '20211001' AND '20211029'
WHERE
I3_FILIAL = @CODFILIAL --('16','30','40','46','51','52','60','70','72','73')
AND ED_CODIGO BETWEEN ' ' AND 'ZZZZ'
AND I3_CUSTO BETWEEN ' ' AND 'ZZZZ'
AND SI3.D_E_L_E_T_ = ' '
AND ED_CODIGO BETWEEN '201001' AND '202006'
OR ED_CODIGO BETWEEN '150001' AND '151028'
OR ED_CODIGO BETWEEN '201072' AND '201073'
OR ED_CODIGO = '151012'
OR ED_CODIGO = '202004'
-- DESPESAS LOGISTICA
SELECT
'DESPESAS LOGISTICA',
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '16' THEN E2_VALOR else 0 END)) F_16,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '30' THEN E2_VALOR else 0 END)) F_30,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '40' THEN E2_VALOR else 0 END)) F_40,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '46' THEN E2_VALOR else 0 END)) F_46,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '51' THEN E2_VALOR else 0 END)) F_51,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '52' THEN E2_VALOR else 0 END)) F_52,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '60' THEN E2_VALOR else 0 END)) F_60,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '70' THEN E2_VALOR else 0 END)) F_70,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '72' THEN E2_VALOR else 0 END)) F_72,
SUM(CONVERT(DECIMAL(18,2),CASE WHEN E2_FILIAL = '73' THEN E2_VALOR else 0 END)) F_73
FROM
SI3010 SI3
LEFT OUTER JOIN SED010 SED ON
SED.D_E_L_E_T_ = ' ' AND ED_CCD = I3_CUSTO
LEFT OUTER JOIN SE2010 SE2 ON
SE2.D_E_L_E_T_ = ' '
AND E2_FILIAL = I3_FILIAL
AND E2_NATUREZ = ED_CODIGO
AND E2_BAIXA BETWEEN '20211001' AND '20211029'
WHERE
I3_FILIAL IN ('16','30','40','46','51','52','60','70','72','73')
AND ED_CODIGO BETWEEN ' ' AND 'ZZZZ'
AND I3_CUSTO BETWEEN ' ' AND 'ZZZZ'
AND SI3.D_E_L_E_T_ = ' '
AND ED_CODIGO BETWEEN '403001' AND '403044'
OR ED_CODIGO = '403008'