PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Como colocar um campo fora da concatenação de um select? #409187

08/11/2011

0

Pessoal, como colocar o campo IDCliente fora desta CONCATENAÇÃO deste select?

Uso o firebird 2.0

SELECT
     case
       when (HORA/3600) < 10 then
         0||(HORA/3600)
       else
        (HORA/3600)
     end ||:||
     case
       when ((HORA-((HORA)/3600)*3600)/60) < 10 then
         0||((HORA-((HORA)/3600)*3600)/60)
       else
         ((HORA-((HORA)/3600)*3600)/60)
     end ||:00
FROM
 (
 SELECT
     CAST(SUM(
         EXTRACT( HOUR FROM SERV.horatotal ) * 3600 +
         EXTRACT( MINUTE FROM SERV.horatotal ) * 60 +
         EXTRACT( SECOND FROM SERV.horatotal )
     ) AS INTEGER)AS HORA,
     cli.idclientes,
     cli.nomeclie

 FROM servicos serv
 INNER JOIN ordemserv ord
 ON serv.idordem = ord.idordem and
 serv.centrocusto = ord.centrocusto
 INNER JOIN clientes cli
 ON cli.idclientes = ord.idclientes

        WHERE ord.nomecondutor IS NOT NULL

        AND coalesce(serv.tipo,,NULL) <> CONCLUÍDO

        AND coalesce(serv.tipo,,NULL) <> DUPLICATA

        AND ord.emissao between :dataini
                            and :datafin
        AND ord.idcondutor between :idcondutorini
                               and :idcondutorfin

 group by 2,3
 order by 2


 )


Preciso deste IDCliente fora para tentar criar um master/detail.

Obrigado.
Adriano Dolce

Adriano Dolce

Responder

Posts

09/11/2011

Adriano Dolce

Ja resolvi pessoal.
SELECT
    idclientes,
    idcondutor,
     case
       when (HORA/3600) < 10 then
         0||(HORA/3600)
       else
        (HORA/3600)
     end ||:||
     case
       when ((HORA-((HORA)/3600)*3600)/60) < 10 then
         0||((HORA-((HORA)/3600)*3600)/60)
       else
         ((HORA-((HORA)/3600)*3600)/60)
     end ||:00
FROM
 (
 SELECT
     CAST(SUM(
         EXTRACT( HOUR FROM SERV.horatotal ) * 3600 +
         EXTRACT( MINUTE FROM SERV.horatotal ) * 60 +
         EXTRACT( SECOND FROM SERV.horatotal )
     ) AS INTEGER)AS HORA,
     cli.idclientes,
     cli.nomeclie,
     ord.idcondutor

 FROM servicos serv
 INNER JOIN ordemserv ord
 ON serv.idordem = ord.idordem and
 serv.centrocusto = ord.centrocusto
 INNER JOIN clientes cli
 ON cli.idclientes = ord.idclientes

        WHERE ord.nomecondutor IS NOT NULL

        AND coalesce(serv.tipo,,NULL) <> CONCLUÍDO

        AND coalesce(serv.tipo,,NULL) <> DUPLICATA

        AND ord.emissao between :dataini
                            and :datafin
        AND ord.idcondutor between :idcondutorini
                               and :idcondutorfin

 group by 2,3,4
 order by 2


 ) 


Obrigado.
Responder

Gostei + 0

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

Aceitar