No sé si puede valer:

SELECT * FROM
(
SELECT cabfra.* , detfra.*, substr(detfra.descri, 35,10) presupuesto
          FROM  cabfra INNER JOIN detfra
              ON  cabfra.nfactura = detfra.nfactura
         WHERE cabfra.anyo = Anyo_deseado
) AS facturas

  INNER JOIN

(
SELECT cabppto.*, detppto.*, digits(cabppto.numppto) numpptoALFA
           FROM cabppto INNER JOIN detppto
               ON cabppto.numppto = detfra.numppto
) AS presupuestos

ON facturas.presupuesto = presupuestos.numpptoALFA
-----

Un saludo


El 24 de enero de 2011 11:43, Fco. Javier B. L. <[email protected]>escribió:

>  Hola a todos!!
> Hoy necesito hacer un SQL más o menos complejo.
> Tengo por un lado una tabla de cabeceras de fra (CABFRA) y el detalle
> (DETFRA).
> Y luego cabeceras de presupuesto (CABPPTO) y el detalle (DETPPTO).
> Tengo que relacionar CABFRA con DETFRA por año y nº de factura (hasta aquí
> bien).
> Hago SELECT * FROM CABFRA, DETFRA...
> Aquí viene lo complicado.
> En cada fila leída de DETFRA tengo un campo descripción (DESCRI).
> En DESCRI tengo, en las posiciones 35 a 44 (10 posiciones alfanuméricas) el
> número de presupuesto (NUMPPTO).
> Con NUMPPTO quiero ir a buscar si existen cabeceras de presupuesto
> (CABPPTO) con éste número.
> El problema es que NUMPPTO es alfanumérico (ya que forma parte de la
> descripción) y el nº de presupuesto de CABPPTO es numérico.
> Primero no se cómo relacionar facturas con presupuestos.
> Segundo no se cómo convertir el nº de presupuesto alfanumérico a numérico y
> luego relacionar.
> Alguien me puede ayudar?
> Un saludo.
> Javier.
>
>
>
>  **
> *
> ------------------------------
> *
>
> *Este mensaje y cualquier fichero adjunto esta dirigido únicamente a sus
> destinatarios y pueden contener información confidencial. Si usted
> considera que ha recibido este correo electrónico por error (por el asunto,
> por el remitente o por cualquier otra causa), le informamos que cualquier
> revisión, alteración, impresión, copia o transmisión de este mensaje o de
> cualquier fichero adjunto está prohibida y puede constituir un acto ilegal.
> Por favor, notifíquele el error al remitente respondiendo a este e-mail
> y elimine el mensaje y su contenido inmediatamente. ** *
>
> **
>
> *This e-mail and any files transmitted with it are intended solely for the
> use of the intended recipients and may contain confidential information. If
> it appears (from the subject matter or address information or otherwise)
> that you received this email in error, please note that any review,
> dissemination, disclosure, alteration, printing, copying or transmission of
> this e-mail or any file transmitted with it is prohibited and may be
> unlawful. Please notify us by return email and delete this email and its
> contents immediately. *
> *
> ------------------------------
> *
>
>
>
>
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 © Publicaciones Help400, S.L.
>
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a