Fórum Dúvida com left join #60857

14/09/2009

0

Boa tarde, pessoal!

Tenho dois selects que quero juntar em um só. O primeiro retorna todas as solictações diferentes de zero e o segundo traz os estudos dessas solicitações. Se o estudo da solicitação for ´NEGADO´, eu altero o status da solicitação para ´Liberado para estudo´.

SELECT SOL.ID_SOLICITACAO, SOL.NOME, SOL.SOLICITANTE,
SOL.DEPARTAMENTO, SOL.DESCRICAO,
CASE ESTUDO.DS_STATUS_CICLO_COMPRA_MAILING WHEN ´NEGADO´
THEN ´Liberada para estudo´
ELSE SOL.DESCRICAO END AS STATUS,
SOL.QUANT_INFORMADA, SOL.DT_ENVIO_BUREAU, SOL.DT_SOLICITACAO
FROM
(SELECT S.ID_SOLICITACAO, S.NOME, S.SOLICITANTE,
S.DEPARTAMENTO, T.DESCRICAO, ST.DESCRICAO,
S.QUANT_INFORMADA, S.DT_ENVIO_BUREAU, S.DT_SOLICITACAO
FROM T_SOLICITACAO S, T_SOLICITACAO_STATUS ST, T_TIPO_SOLICITACAO T
WHERE S.STATUS = ST.ID_SOLICITACAO_STATUS
AND S.TP_SOLICITACAO = T.ID_TP_SOLICITACAO
AND S.ID_SOLICITACAO <> 0
ORDER BY ID_SOLICITACAO) AS SOL
LEFT JOIN
(SELECT S.DS_STATUS_CICLO_COMPRA_MAILING, E.ID_SOLICITACAO
FROM T_CICLO_COMPRA_MAILING E, T_STATUS_CICLO_COMPRA_MAILING S
WHERE E.ID_STATUS_CICLO_COMPRA_MAILING = S.ID_STATUS_CICLO_COMPRA_MAILING
AND S.ID_STATUS_CICLO_COMPRA_MAILING NOT IN (6,7,8)
ORDER BY ID_SOLICITACAO, ID_CICLO_COMPRA_MAILING DESC) AS ESTUDO
ON SOL.ID_SOLICITACAO = ESTUDO.ID_SOLICITACAO
ORDER BY ID_SOLICITACAO

O problema é que aparece o seguinte erro: Can´t Prepare , because query is empty.

Não entendi nada, pois ao rodar cada select em separado, eles retornam dados.

Alguém pode me ajudar?

Obrigada!


Freitasmon

Freitasmon

Responder

Posts

15/09/2009

Emerson Nascimento

tente assim:
SELECT
  S.ID_SOLICITACAO, S.NOME, S.SOLICITANTE,
  S.DEPARTAMENTO, T.DESCRICAO, ST.DESCRICAO,
  S.QUANT_INFORMADA, S.DT_ENVIO_BUREAU, S.DT_SOLICITACAO
FROM
  T_SOLICITACAO S
INNER JOIN
  T_SOLICITACAO_STATUS ST ON ST.ID_SOLICITACAO_STATUS = S.STATUS
INNER JOIN
  T_TIPO_SOLICITACAO T ON T.ID_TP_SOLICITACAO = S.TP_SOLICITACAO
LEFT JOIN T_CICLO_COMPRA_MAILING E
  ON E.ID_SOLICITACAO = S.ID_SOLICITACAO
LEFT JOIN T_STATUS_CICLO_COMPRA_MAILING S
  ON S.ID_STATUS_CICLO_COMPRA_MAILING = E.ID_STATUS_CICLO_COMPRA_MAILING
  AND NOT S.ID_STATUS_CICLO_COMPRA_MAILING IN (6,7,8)
WHERE 
  S.ID_SOLICITACAO <> 0
ORDER BY
  S.ID_SOLICITACAO



Responder

Gostei + 0

04/07/2010

Carlos Mazzi

Resolvido ?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar