none
ACCESS SELECT com IIF RRS feed

  • Pergunta

  • Senhores(as), preciso de ajuda em um SELECT no ACCESS (o programa foi criado em Access e o cliente não quer mudar agora pois demoraria muito para reestruturar o SQL compact)
    Existem 03 tabelas: tblCadastro AS CtblProcesso AS P e tblCalculo AS CALC

    Preciso retornar todos os números de processo, da coluna numProcesso, existentes na tabela tblProcesso, sendo que, na tabela tblCalculo também existe a coluna número do processo (numProcesso).
    Então eu preciso retornar, também, o código do cálculo SE o valor da coluna CALC.numProcesso = P.numProcesso SENÃO retorna NULL

    Exemplo:
    CASO 1. Caso exista um Processo, na tabela tblProcesso, com o número 0001 e um também existir  o número de processo 0001 na tblCalculo, deve retornar:
    P.numProcesso |         CALC.cod
          0001            |    código do cálculo

    CASO 2. Caso exista um processo, na tabela tblProcesso, com o número 0001, mas NÃO existe esse número de processo na tabela tblCalculo.
    P.numProcesso |    CALC.cod
          0001            |      NULL

    Estou usando a seguinte String:

    SELECT C.cod, C.nome, P.numProcesso, IIF(CALC.numProcesso IS NULL, NULL, CALC.cod) AS nº_calculo
    FROM (tblCadastro AS C
    INNER JOIN tblProcesso AS P ON C.cod = P.codTrab)
    INNER JOIN tblCalculo AS CALC ON P.numProcesso = CALC.numProcesso
    ORDER BY C.nome, CALC.numProcesso;

    Até funciona, mas se acontecer o CASO 2, não retorna nada.
    A intenção é mostrar para o usuário que existe um processo em andamento, mas está pendente na parte de cálculos.

    Espero ter conseguido me explicar bem.


    • Editado RioLeal quinta-feira, 14 de maio de 2020 13:25
    quinta-feira, 14 de maio de 2020 13:24

Respostas