Fórum Selecinar tudo que for igual, sem parametros mas tem que ser #60235
21/10/2008
0
Tigrada, to sofrendo o atentado pra faze uma consulta em sql, aqui em uma tabela. seguinte, eu tenho uma tabela detalhe que tem as Colunas ID_EXAME,ID_HONO,TP.
os dados ficam assim nela:
ID_EXAME,ID_HONO,TP 1 1 P 1 2 AUX 2 7 P 6 1 P 6 2 AUX
o que eu preciso é selecionar tudo que ID_HONO = 1 como principal e ID_HONO = 2 como Auxiliar... só que o ID_EXAME entre esses 2 tem que ser igual.
Não tenho a minima idéia de como montar o SQL, já tentei várias maneiras e nenhuma deu certo segue um dos scripts que tentei:
SELECT E.ID_EXAME, E.DATA_EXAME,E.ID_CONVENIO, E.DT_PGTO_HONO, E.ID_PACIENTE,HE.* FROM HONO_EXAME HE, EXAME E WHERE ( (HE.ID_EXAME = E.ID_EXAME)AND (HE.ID_HONO = 1) AND (HE.TP = ´P´) AND (E.DT_PGTO_HONO >=´2008-01-01´)AND (E.DT_PGTO_HONO <=´2009-01-01´) ) UNION SELECT E.ID_EXAME, E.DATA_EXAME,E.ID_CONVENIO, E.DT_PGTO_HONO, E.ID_PACIENTE,HE.* FROM HONO_EXAME HE, EXAME E WHERE ( (HE.ID_EXAME = E.ID_EXAME)AND (HE.ID_HONO = 7) AND (HE.TP <> ´P´) AND (E.DT_PGTO_HONO >=´2008-01-01´)AND (E.DT_PGTO_HONO <=´2009-01-01´) )
Qualquer ajuda é bem aceita, agradeço desde já a juda!
vlw ^.^
Daniel Martins
Curtir tópico
+ 0Posts
21/10/2008
Emerson Nascimento
Gostei + 0
22/10/2008
Daniel Martins
ID_EXAME,ID_HONO,TP 1 1 P 1 2 AUX 6 1 P 6 2 AUX Excluso 2 7 P
Gostei + 0
22/10/2008
Emerson Nascimento
SELECT E.ID_EXAME, E.DATA_EXAME, E.ID_CONVENIO, E.DT_PGTO_HONO, E.ID_PACIENTE, HE.* FROM HONO_EXAME HE INNER JOIN HONO_EXAME HE2 ON (HE2.ID_EXAME = HE2.ID_EXAME AND HE2.ID_HONO <> HE.ID_HONO) INNER JOIN EXAME E ON (E.ID_EXAME = HE.ID_EXAME) WHERE HE.ID_HONO IN (1, 2) AND (E.DT_PGTO_HONO >=´2008-01-01´) AND (E.DT_PGTO_HONO <=´2009-01-01´))
Gostei + 0
22/10/2008
Daniel Martins
Ex.:
ID_EXAME,ID_HONO,TP 1 1 P 1 1 P 1 1 P 1 1 P ...
Sinistro Oo
Tipo se ele deveria retornar 4 registros diferentes ele Me retornou 4 registros iguais.
Gostei + 0
23/10/2008
Daniel Martins
sei llá
Gostei + 0
23/10/2008
Emerson Nascimento
SELECT E.ID_EXAME, E.DATA_EXAME, E.ID_CONVENIO, E.DT_PGTO_HONO, E.ID_PACIENTE, HE1.*, HE2.* FROM EXAME E LEFT JOIN HONO_EXAME HE1 ON (HE1.ID_EXAME = E.ID_EXAME AND HE1.ID_HONO = 1) LEFT JOIN HONO_EXAME HE2 ON (HE2.ID_EXAME = E.ID_EXAME AND HE2.ID_HONO = 2) WHERE (COALESCE(HE1.ID_HONO,0) = 1) AND (COALESCE(HE2.ID_HONO,0) = 2) AND (E.DT_PGTO_HONO >=´2008-01-01´) AND (E.DT_PGTO_HONO <=´2009-01-01´)
Gostei + 0
31/10/2008
Daniel Martins
resolvi o problema usando 2 queryes diferentes, e um bocado de algoritimo no delphi.
Agradeço as dicas
Obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)