Sintax Near *=
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
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
Curtidas 0
Respostas
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:
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