Ir para conteúdo

POWERED BY:

Arquivado

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

Ericsson Berg

If em select do banco

Recommended Posts

Como eu faço para uma um if em um select?

WHERE  EMPRESAS.COD_EMPRESA = VEICULOS.COD_EMPRESA_VENDEDORA
                   AND PRODUTOS_MODELOS.COD_PRODUTO = VEICULOS.COD_PRODUTO
                   AND PRODUTOS_MODELOS.COD_MODELO = VEICULOS.COD_MODELO
                   AND EMPRESAS_USUARIOS.NOME = VEICULOS.VENDEDOR
                   AND VEICULOS_CUSTOS_ESPECIFICOS.COD_EMPRESA (+) = VEICULOS.COD_EMPRESA_VENDEDORA
                   AND VEICULOS_CUSTOS_ESPECIFICOS.CHASSI_RESUMIDO (+) = VEICULOS.CHASSI_RESUMIDO
                   AND CUSTOS_ESPECIFICOS.CODIGO_CUSTO (+) = VEICULOS_CUSTOS_ESPECIFICOS.CODIGO_CUSTO
                   AND CUSTOS_ESPECIFICOS.TIPO (+) = VEICULOS_CUSTOS_ESPECIFICOS.TIPO
                   AND VEICULOS.STATUS = 'V'
                   ".<?php if ($tipo == 'TODOS'){
                    echo $todos_tipos = "AND DECODE(CONCAT(VEICULOS.NOVO_USADO,VEICULOS.INTERNET),'NN','NOVOS','UN','USADOS') IN ('NOVOS','USADOS')';} ?>."
                   

Gostaria que dependendo do valor da variável eu pudesse alterar um select.

Se = 'TODOS'

incluir linha de código x

se não

incluir linha de código y

 

Mas estou com dúvida se tenho que utilizar echo ou não e como tenho que utilizar as aspas simples e duplas.

 

Tentei achar algo explicando isso em relação ao select mas não encontrei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas o valor vem de uma variável que o usuário escolher.

 

Pensando fiz dessa forma mas ainda não funciona.

$sql = "SELECT DISTINCT VEICULOS.COD_EMPRESA_VENDEDORA COD_EMP,
                EMPRESAS.NOME EMPRESA,
                PRODUTOS_MODELOS.DESCRICAO_MODELO MODELO, 
                VEICULOS.ANO_MODELO A_M, 
                VEICULOS.PLACA_USADO PLACA, 
                VEICULOS.CHASSI_COMPLETO CHASSI, 
                EMPRESAS_USUARIOS.NOME_COMPLETO VENDEDOR, 
                TRUNC(VEICULOS.DATA_VENDA) DATA_VENDA, 
                ROUND((VEICULOS.DATA_VENDA)-(VEICULOS.DATA_FATURAMENTO) ,0) DPT, 
                ((VEICULOS.VALOR_VENDIDO)-(VEICULOS.DESCONTO_INCONDICIONAL) ) VALOR_VENDA2, 
                (VEICULOS.TOTAL_NOTA_FABRICA) VALOR_ENTRADA, 
                (NVL(VEICULOS_CUSTOS_ESPECIFICOS.VALOR_FINAL,0)) BONUS, 
                NVL((VEICULOS.HB_ORIGINAL),0)  HB, 
                (VEICULOS.DESCONTO_INCONDICIONAL)  DI, 
                (VEICULOS.VALOR_VENDIDO)-(VEICULOS.DESCONTO_INCONDICIONAL)-(VEICULOS.TOTAL_NOTA_FABRICA)+(NVL(VEICULOS_CUSTOS_ESPECIFICOS.VALOR_FINAL,0))+NVL((VEICULOS.HB_ORIGINAL),0)  MARGEM, 
                DECODE(CONCAT(VEICULOS.NOVO_USADO,VEICULOS.INTERNET),'NN','NOVOS','UN','USADOS')  TIPO, 
                ROUND((((VEICULOS.VALOR_VENDIDO)-(VEICULOS.DESCONTO_INCONDICIONAL)-(VEICULOS.TOTAL_NOTA_FABRICA)+(NVL(VEICULOS_CUSTOS_ESPECIFICOS.VALOR_FINAL,0))+NVL((VEICULOS.HB_ORIGINAL),0) )/((VEICULOS.VALOR_VENDIDO)-(VEICULOS.DESCONTO_INCONDICIONAL) ))*100,2) PERCT, 
                NVL(VEICULOS_CUSTOS_ESPECIFICOS.TIPO,0) TIPO_VCE, 
                NVL(CUSTOS_ESPECIFICOS.DESCRICAO_CUSTO,0) DESC_VCE, 
                NVL(VEICULOS_CUSTOS_ESPECIFICOS.VALOR_FINAL,0) VALOR_FINAL_VCE,
                NVL(CUSTOS_ESPECIFICOS.DESCRICAO_CUSTO,0) CC

            FROM ".$schema.".VEICULOS, 
                 ".$schema.".EMPRESAS, 
                 ".$schema.".PRODUTOS_MODELOS, 
                 ".$schema.".EMPRESAS_USUARIOS, 
                 ".$schema.".VEICULOS_CUSTOS_ESPECIFICOS, 
                 ".$schema.".CUSTOS_ESPECIFICOS

            WHERE  EMPRESAS.COD_EMPRESA = VEICULOS.COD_EMPRESA_VENDEDORA
                   AND PRODUTOS_MODELOS.COD_PRODUTO = VEICULOS.COD_PRODUTO
                   AND PRODUTOS_MODELOS.COD_MODELO = VEICULOS.COD_MODELO
                   AND EMPRESAS_USUARIOS.NOME = VEICULOS.VENDEDOR
                   AND VEICULOS_CUSTOS_ESPECIFICOS.COD_EMPRESA (+) = VEICULOS.COD_EMPRESA_VENDEDORA
                   AND VEICULOS_CUSTOS_ESPECIFICOS.CHASSI_RESUMIDO (+) = VEICULOS.CHASSI_RESUMIDO
                   AND CUSTOS_ESPECIFICOS.CODIGO_CUSTO (+) = VEICULOS_CUSTOS_ESPECIFICOS.CODIGO_CUSTO
                   AND CUSTOS_ESPECIFICOS.TIPO (+) = VEICULOS_CUSTOS_ESPECIFICOS.TIPO
                   AND VEICULOS.STATUS = 'V' "; 
    
            if ($tipo == 'TODOS'){
                $sql .= " AND DECODE(CONCAT(VEICULOS.NOVO_USADO,VEICULOS.INTERNET),NN,'NOVOS','UN','USADOS') IN ('NOVOS','USADOS')";  
            
               
            }   
            elseif ($tipo <> 'TODOS'){
                $sql .= " AND DECODE(CONCAT(VEICULOS.NOVO_USADO,VEICULOS.INTERNET),NN,'NOVOS','UN','USADOS') IN ('".$tipo."')";
             
            }
            
                $sql .= " AND NVL(VEICULOS_CUSTOS_ESPECIFICOS.TIPO,0) IN (11,0) 
                  -- AND NVL(CUSTOS_ESPECIFICOS.DESCRICAO_CUSTO,0) in ('Bônus','0') 
				  AND NVL(CUSTOS_ESPECIFICOS.CODIGO_CUSTO,0) in (96,0)
                   AND NVL(VEICULOS_CUSTOS_ESPECIFICOS.VALOR_FINAL,0)>= 0
       AND  TRUNC(VEICULOS.DATA_VENDA) >= TO_DATE('".$data1."','YYYY/MM/DD') 
       AND  TRUNC(VEICULOS.DATA_VENDA) <= TO_DATE('".$data2."','YYYY-MM-DD')    
	
                   ORDER BY EMPRESA, DATA_VENDA, 15 "; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido erro no código mesmo.

 

Um argumento do DECODE sem aspas. = NN

AND DECODE(CONCAT(VEICULOS.NOVO_USADO,VEICULOS.INTERNET),NN,'NOVOS','UN','USADOS') IN ('".$tipo."')

AND DECODE(CONCAT(VEICULOS.NOVO_USADO,VEICULOS.INTERNET),'NN','NOVOS','UN','USADOS') IN ('".$tipo."')

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.