Sintax Near *=

SQL Server

SQL

Query

Big Data

Banco de Dados

15/11/2018

Boa tarde Galera!
Estou com um relatório, que contém a função *= . Vi nas pesquisas que fiz que funcionava no SQL2000 como LEFT JOIN, mas que nas versões mais novas somente mudando a compatibilidade (o que não posso fazer) ou adequando a função LEFT JOIN.
Já tentei de todas as formas substituir essa linha com o problema mas só encontro casos com 2 tabelas e não estou sabendo aplicar na minha situação. Alguém poderia me ajudar.

Desde já agradeço.


SELECT PAC.PAC_NOME,
APQ.APQ_OSM_SERIE,
APQ.APQ_OSM_NUM,
PAC.PAC_SEXO,
OSM.OSM_DTHR,
OSM.OSM_OBS,
PAC.PAC_FONE,
PAC.PAC_REG,
PDC.PDC_COR,
PAC.PAC_PRONT,
PP.PRO_NOME PRO_NOME_PP,
DATEDIFF ( dd, PAC.PAC_NASC, GetDate () ) / 365 ,
PAC.PAC_CARTAO_SUS,
PAC.PAC_NOME_MAE,
APQ.APQ_USR_LOGIN,
PGT.PGT_TEXTO,
RPT.RPT_TEXTO,
RPA.RPA_RESPOSTA
FROM PAC, PDC, APQ, OSM, PGT, RPA, PRO PP, QST, RPT
WHERE ( APQ.APQ_QST_COD = QST.QST_COD ) AND
( PGT.PGT_QST_COD = QST.QST_COD ) AND
( RPA.RPA_APQ_COD = APQ.APQ_COD ) AND
( RPA.RPA_QST_COD = APQ.APQ_QST_COD ) AND
( RPA.RPA_PGT_COD = PGT.PGT_COD ) AND
( RPA.RPA_QST_COD = PGT.PGT_QST_COD ) AND
( RPA.RPA_PGT_COD = RPT.RPT_PGT_COD ) AND
( RPA.RPA_QST_COD = RPT.RPT_QST_COD ) AND
( RPA.RPA_RESPOSTA = RPT.RPT_MINIMO ) AND
( RPA.RPA_RESPOSTA *= RPT.RPT_MAXIMO ) AND
( PAC.PAC_PRO_COD = PP.PRO_COD ) AND
( APQ.APQ_OSM_SERIE = OSM.OSM_SERIE ) AND
( APQ.APQ_OSM_NUM = OSM.OSM_NUM ) AND
( PDC.PDC_PAC_REG = PAC.PAC_REG ) AND
( APQ.APQ_QUESTIONADO_N = PAC.PAC_REG ) AND
( APQ.APQ_OSM_NUM = :NUMERO ) AND
( APQ.APQ_OSM_SERIE = 118 )
ORDER BY PAC.PAC_NOME ASC
Douglas Jesus

Douglas Jesus

Curtidas 0

Respostas

Daniel Araújo

Daniel Araújo

15/11/2018

Olá Douglas!

Não sei se vai resolver porque não tenho a base de dados para testar. Mas vê aí se deu certo:
SELECT PAC.PAC_NOME
      ,APQ.APQ_OSM_SERIE
      ,APQ.APQ_OSM_NUM
      ,PAC.PAC_SEXO
      ,OSM.OSM_DTHR
      ,OSM.OSM_OBS
      ,PAC.PAC_FONE
      ,PAC.PAC_REG
      ,PDC.PDC_COR
      ,PAC.PAC_PRONT
      ,PP.PRO_NOME PRO_NOME_PP
      ,DATEDIFF(DD, PAC.PAC_NASC, GETDATE()) / 365
      ,PAC.PAC_CARTAO_SUS
      ,PAC.PAC_NOME_MAE
      ,APQ.APQ_USR_LOGIN
      ,PGT.PGT_TEXTO
      ,RPT.RPT_TEXTO
      ,RPA.RPA_RESPOSTA
 FROM RPA
INNER JOIN APQ
   ON (RPA.RPA_APQ_COD = APQ.APQ_COD AND
       RPA.RPA_QST_COD = APQ.APQ_QST_COD)
 LEFT OUTER JOIN RPT
   ON (RPA.RPA_RESPOSTA = RPT.RPT_MAXIMO AND
       RPA.RPA_PGT_COD = RPT.RPT_PGT_COD AND
       RPA.RPA_QST_COD = RPT.RPT_QST_COD AND
       RPA.RPA_RESPOSTA = RPT.RPT_MINIMO)
INNER JOIN PGT
   ON (RPA.RPA_PGT_COD = PGT.PGT_COD AND
       RPA.RPA_QST_COD = PGT.PGT_QST_COD)
INNER JOIN PAC
   ON APQ.APQ_QUESTIONADO_N = PAC.PAC_REG
INNER JOIN QST
   ON (APQ.APQ_QST_COD = QST.QST_COD AND
       PGT.PGT_QST_COD = QST.QST_COD)
INNER JOIN OSM
   ON (APQ.APQ_OSM_SERIE = OSM.OSM_SERIE AND
       APQ.APQ_OSM_NUM = OSM.OSM_NUM)
INNER JOIN PRO PP
   ON PAC.PAC_PRO_COD = PP.PRO_COD
INNER JOIN PDC
   ON PDC.PDC_PAC_REG = PAC.PAC_REG
WHERE APQ.APQ_OSM_NUM = :NUMERO
  AND APQ.APQ_OSM_SERIE = 118
ORDER BY PAC.PAC_NOME ASC
GOSTEI 0
POSTAR