Fórum alguem poderia ajudar neste select #341838

16/05/2007

0

como posso montar este select, parece facil mas da erros.

como tenho mais de uma relação da TabMedico com TabAtend,
aparecem erros de nome campo duplicados.



TabMedico
===============
Crm........Nome
123.........Carlos
456.........Monica
789.........Joao


TabAtend
============================
NrAtend....Crm1......Crm2......Crm3
a888..........123........789
b777..........789
c666..........123.........456.........789


Resultado Desejado
===============================================
NrAtend....NomeMedico1.....NomeMedico2.....NomeMedico3
a888..........Carlos...................Joao
b777..........Joao
c666..........Carlos...................Monica..................Joao


no aguardo


Kelly

Kelly

Responder

Posts

16/05/2007

Catunda

olhe, a nivel de banco de dados a procedure abaixo funciona perfeitamente no firebird:

CREATE PROCEDURE NEW_PROCEDURE
RETURNS (
NRAT VARCHAR(10),
MEDICO1 VARCHAR(20),
MEDICO2 VARCHAR(20),
MEDICO3 VARCHAR(20))
AS
DECLARE VARIABLE V1 INTEGER;
DECLARE VARIABLE V2 INTEGER;
DECLARE VARIABLE V3 INTEGER;
begin
for select nratend,crm1,crm2,crm3 from tabatend into :nrat, :v1, :v2, :v3 do
begin
medico1=null;
medico2=null;
medico3=null;
if (:v1 is not null) then select nome from tabmedico where codigo=:v1 into :medico1;
if (:v2 is not null) then select nome from tabmedico where codigo=:v2 into :medico2;
if (:v3 is not null) then select nome from tabmedico where codigo=:v3 into :medico3;
suspend;
end
end


Responder

Gostei + 0

16/05/2007

Rjun

SELECT
  Ta.NrAtend,
  Tm1.Nome,
  Tm2.Nome,
  Tm3.Nome  
FROM
  TabAtend Ta
LEFT JOIN
  TabMedico Tm1 ON Ta.Crm = Tm1.Crm
LEFT JOIN
  TabMedico Tm2 ON Ta.Crm = Tm2.Crm
LEFT JOIN
  TabMedico Tm3 ON Ta.Crm = Tm3.Crm



Responder

Gostei + 0

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

Aceitar