Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

elvio.tche

Select Condicional para Uma ou outra tabela...

Recommended Posts

Estou com o seguinte código SQL:

Select 
DLAF.CODFILIAL,	GFILIAL.NOMEFANTASIA, DLAF.DOCINI, DLAF.DATAEMISSAO, DCFOP.CODNAT, DLAF.VALORMERC, DLAF.FRETE, DLAF.VALORCONT, DLAF.ALIQICMS, DLAF.VALORICMS, DLAF.CODCFO,
CASE WHEN LEN(DLAF.CODCFO)=5 THEN
		FCFO.NOMEFANTASIA
ELSE
		GFILIAL.NOMEFANTASIA
END,
CASE WHEN LEN(DLAF.CODCFO)=5 THEN
		FCFO.CIDADE
ELSE
		GFILIAL.CIDADE
END,
CASE WHEN LEN(DLAF.CODCFO)=5 THEN
		FCFO.CODETD
ELSE
		GFILIAL.ESTADO
END
From
DLAF
	INNER JOIN GFILIAL ON DLAF.CODFILIAL = GFILIAL.CODFILIAL
	INNER JOIN DCFOP on DLAF.IDNAT = DCFOP.IDNAT
	IF LEN(DLAF.CODCFO)=5
		INNER JOIN GFILIAL ON DLAF.CODFILIAL = GFILIAL.CODFILIAL
	ELSE
		INNER JOIN FCFO ON DLAF.CODCFO = FCFO.CODCFO
	END
Where
DLAF.CODFILIAL='9' AND
DLAF.DATAEMISSAO BETWEEN '2012-03-01' AND '2012-03-31'
ORDER BY
DLAF.DATAEMISSAO,DLAF.DOCINI

 

Ocorre um erro no "if" dentro do "From", onde deveria executar um "Inner Join" ou outro.

 

Aguardo sugestões...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria :

 

Select 
       DLAF.CODFILIAL, GFILIAL.NOMEFANTASIA, DLAF.DOCINI, DLAF.DATAEMISSAO, DCFOP.CODNAT, DLAF.VALORMERC, DLAF.FRETE, DLAF.VALORCONT, DLAF.ALIQICMS, DLAF.VALORICMS, DLAF.CODCFO,
       CASE WHEN LEN(DLAF.CODCFO)=5 THEN
                       FCFO.NOMEFANTASIA
       ELSE
                       GFILIAL.NOMEFANTASIA
       END,
       CASE WHEN LEN(DLAF.CODCFO)=5 THEN
                       FCFO.CIDADE
       ELSE
                       GFILIAL.CIDADE
       END,
       CASE WHEN LEN(DLAF.CODCFO)=5 THEN
                       FCFO.CODETD
       ELSE
                       GFILIAL.ESTADO
       END
From
       DLAF
               INNER JOIN GFILIAL ON DLAF.CODFILIAL = GFILIAL.CODFILIAL
               INNER JOIN DCFOP on DLAF.IDNAT = DCFOP.IDNAT
               INNER JOIN GFILIAL ON DLAF.CODFILIAL = GFILIAL.CODFILIAL

Where
       DLAF.CODFILIAL='9' AND
       DLAF.DATAEMISSAO BETWEEN '2012-03-01' AND '2012-03-31' and
       LEN(DLAF.CODCFO)=5
union all
Select 
       DLAF.CODFILIAL, GFILIAL.NOMEFANTASIA, DLAF.DOCINI, DLAF.DATAEMISSAO, DCFOP.CODNAT, DLAF.VALORMERC, DLAF.FRETE, DLAF.VALORCONT, DLAF.ALIQICMS, DLAF.VALORICMS, DLAF.CODCFO,
       CASE WHEN LEN(DLAF.CODCFO)=5 THEN
                       FCFO.NOMEFANTASIA
       ELSE
                       GFILIAL.NOMEFANTASIA
       END,
       CASE WHEN LEN(DLAF.CODCFO)=5 THEN
                       FCFO.CIDADE
       ELSE
                       GFILIAL.CIDADE
       END,
       CASE WHEN LEN(DLAF.CODCFO)=5 THEN
                       FCFO.CODETD
       ELSE
                       GFILIAL.ESTADO
       END
From
       DLAF
               INNER JOIN GFILIAL ON DLAF.CODFILIAL = GFILIAL.CODFILIAL
               INNER JOIN DCFOP on DLAF.IDNAT = DCFOP.IDNAT
               INNER JOIN FCFO ON DLAF.CODCFO = FCFO.CODCFO
Where
       DLAF.CODFILIAL='9' AND
       DLAF.DATAEMISSAO BETWEEN '2012-03-01' AND '2012-03-31' and
       LEN(DLAF.CODCFO)!=5
ORDER BY
       DLAF.DATAEMISSAO,DLAF.DOCINI

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.