Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-07-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 22
kuan-yiu Va camino a la fama
A ver si no me he liado al pasarlo a Paradox... Creo que quedaría algo así:
Código SQL [-]
select q1.cliente,q1.nombre,max(tel.telefono),q1.base_imp
from
": DBFICHEROS:TELS_EMP.DB" AS TEL,
  (SELECT FRA.CLIENTE, EMP.NOMBRE, SUM(FRA.BASE_IMP)
  FROM ": DBFACTU2:FAC_EMI.DB" AS FRA,
          ": DBFICHEROS:EMPRESAS.DB" AS EMP
  WHERE EMP.ID_EMPRESA = FRA.CLIENTE
  GROUP BY FRA.CLIENTE, EMP.NOMBRE, TEL.TELEFONO) as q1
where 
  TEL.EMPRESA = EMP.ID_EMPRESA
ORDER BY
CLIENTE
Responder Con Cita
  #2  
Antiguo 19-07-2007
NSL94 NSL94 is offline
Miembro
 
Registrado: abr 2007
Posts: 43
Poder: 0
NSL94 Va por buen camino
me preguntas que es el is unique? -_-¡ yo no puedo usarlo en mi paradox, pero por el nombre me lo supongo xDD ara bien el codigo que me proponias tu era:
Código SQL [-]
SELECT 
      FRA.CLIENTE, EMP.NOMBRE, MAX(TEL.TELEFONO), SUM(FRA.BASE_IMP)
FROM
      ": DBFACTU2:FAC_EMI.DB" AS FRA,
      ": DBFICHEROS:EMPRESAS.DB" AS EMP,
      ": DBFICHEROS:TELS_EMP.DB" AS TEL
WHERE 
      TEL.EMPRESA = EMP.ID_EMPRESA AND
      EMP.ID_EMPRESA = FRA.CLIENTE AND
      FRA.BASE_IMP <> 0 AND
      FRA.CLIENTE IS UNIQUE
GROUP BY
      FRA.CLIENTE, EMP.NOMBRE
ORDER BY
      FRA.CLIENTE

xDD

En fin la ultima propuesta tampoco me sirve, ya que no puedo poner un select dentro de un from -_-¡
No se si hay versiones de paradox pero el soft es del 95-96... imaginate.
Responder Con Cita
  #3  
Antiguo 19-07-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 22
kuan-yiu Va camino a la fama
Lo siento, me he perdido. He utilizado tu primera consulta basándome en que era esa la que funionaba parcialmente.
Pon la estructura de las pablas implicadas, sus índices y con un ejemplo que es lo que quieres obtener.
Responder Con Cita
  #4  
Antiguo 19-07-2007
NSL94 NSL94 is offline
Miembro
 
Registrado: abr 2007
Posts: 43
Poder: 0
NSL94 Va por buen camino
partiendo de esta consulta:

Código SQL [-]
SELECT 
FRA.CLIENTE, EMP.NOMBRE, TEL.TELEFONO, SUM(FRA.BASE_IMP)
FROM
": DBFACTU2:FAC_EMI.DB" AS FRA,
": DBFICHEROS:EMPRESAS.DB" AS EMP,
": DBFICHEROS:TELS_EMP.DB" AS TEL
WHERE 
TEL.EMPRESA = EMP.ID_EMPRESA AND
EMP.ID_EMPRESA = FRA.CLIENTE
GROUP BY
FRA.CLIENTE, EMP.NOMBRE, TEL.TELEFONO
ORDER BY
FRA.CLIENTE

Esta consulta me funcciona(NO DA ERRORES), pero no como quisiera.

LO QUE QUIERO HACER:
Sacar un listado de empresas con codigo, nombre, una suma de todos los campos Base_Imp de los albaranes liados a esta empresa y por ultimo un numero de telefono liado a esta empresa, uno y solo uno.
EL PROBLEMA (LO QUE HACE ESTA CONSULTA ver arriba):
Cuando una empresa tiene varios numeros de telefono, me sale un registro por cada empresa, cada uno de estos registros tiene la suma.
Lo que provoca que el sumario del report (La suma final de las sumas) es erona.

EJEMPLO:
empresa 1 tiene 3 numeros de telefono
empresa 2 tiene 1 numero de telefono

LO QUE SACO YO (ERONEO)
cod \ nombre \ suma \ telefono
001 \ empresa1 \ 100 \ 930000
001 \ empresa1 \ 100 \ 930001
001 \ empresa1 \ 100 \ 930002
002 \ empresa2 \ 105 \ 931111
sumario: 405 ->totalmente falso!

LO QUE QUIERO SACAR:
001 \ empresa1 \ 100 \ el numero que sea, me da igual el que salga.
002 \ empresa2 \ 105 \ 931111
sumario: 205 -> suma final corecta.

te recuerdo que no puedo usar ni last ni first, ni condiciones en el group by ni tampoco selects en el from.
Responder Con Cita
  #5  
Antiguo 19-07-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.419
Poder: 24
fjcg02 Va camino a la fama
Tras hacer unas pruebas, me he dado cuenta de que el problema está en el modelo de datos. Tal como lo tienes, no podrás sacar la información que quieres creo - aunque puedo equivocarme , cuidado - que en ningun motor de BBDD.

La solución que propongo, suponiendo que harás esta consulta para presentar los datos en un grd o en un informe:
1.-Hacer una consulta de las tablas empresas y facturas. Esta sí te saca la información que necesitas de Empresa y suma de facturas.
2.- Añadir a la consulta del punto anterior un campo calculado en que calcules con otra query el nº de telefono que quieras de los que tenga cada empresa.

Suerte y saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Impresion de group header group footer Manuel Impresión 3 11-11-2007 01:05:23
Cómo utilizar consultas con DISTINCT de forma correcta dec MySQL 9 19-09-2006 17:50:47
group by y dbgrid, poner condicion como columna? JoseQ Conexión con bases de datos 4 17-05-2005 03:57:24
consultas anidadas: group by dentro otro group by DobleSiete SQL 7 31-01-2005 14:59:31
Group Header, Detail y Footer Group en la misma pagina MarcelRuz Impresión 0 20-04-2004 23:27:14


La franja horaria es GMT +2. Ahora son las 18:48:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi