Fórum Procedure subconsulta #410038

01/12/2011

0

Bom dia pessoal,

Preciso gerar um subselect em uma consulta, onde esta tabela possui mais de uma linha. Gostaria que as linhas da subconsulta ficasem separadas por Enter.
Ex.:
select codigo, (select nf from tabela2 where tabela2.codTab1 = tabela1.codigo) from tabela1;

via fonte do delphi eu faria assim:

  
  q_aux.SQL.Clear;
  q_aux.SQL.Add(select nf from tabela2 where codTab1=:codTab1 );
  q_aux.ParamByName(codTab1).AsString:=q_tabela1.FieldByName(codigo).AsString;
  q_aux.Open;

  if q_aux.FieldByName(nf).AsString<> then
  begin
    q_aux.First;
    while not q_aux.Eof do
    begin
      ppMemo1.Lines.Add(q_aux.FieldByName(nf).AsString);
      q_aux.Next;
    end;
  end;


Algem pode me ajudar a traduzir este código para uma procedure em firebird?

Desde já agradeço.
José Ilha

José Ilha

Responder

Posts

02/12/2011

Emerson Nascimento

uma SP é realmente necessária? me parece uma instrução bem simples:

q_aux.SQL.text :=
select t1.codigo, t2.nf from tabela1 t1 +
inner join tabela2 t2 on t2.codTab1 = t1.codigo +
where t1.codigo = :codTab1 );
q_aux.ParamByName(codTab1).AsString := q_tabela1.FieldByName(codigo).AsString;
q_aux.Open;

while not q_aux.Eof do
begin
ppMemo1.Lines.Add(q_aux.FieldByName(nf).AsString);
q_aux.Next;
end;
Responder

Gostei + 0

02/12/2011

José Ilha

uma SP é realmente necessária? me parece uma instrução bem simples:

q_aux.SQL.text :=
select t1.codigo, t2.nf from tabela1 t1 +
inner join tabela2 t2 on t2.codTab1 = t1.codigo +
where t1.codigo = :codTab1 );
q_aux.ParamByName(codTab1).AsString := q_tabela1.FieldByName(codigo).AsString;
q_aux.Open;

while not q_aux.Eof do
begin
ppMemo1.Lines.Add(q_aux.FieldByName(nf).AsString);
q_aux.Next;
end;


Obrigado pela sua resposta Emersom.
Eu ja estou usando o código que passei no BeforePrint do Detail do ReportBuilder.
O que acontece é que o cliente precisa exportar para xls. Mas na exportação o ReportBuilder, eu não sei o pq, só exporta os dados que estão na query, não exportando o conteudo do ppMemo1.

Att,
Responder

Gostei + 0

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

Aceitar