Club Delphi  
    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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-11-2005
hmoner hmoner is offline
Miembro
 
Registrado: may 2005
Posts: 52
Poder: 19
hmoner Va por buen camino
Unir 2 Consultas en una sola

Hola Amigos
Tengo un problema, bien sucio, y debo hacerlo si o si
Tengo 2 consultas, las cuales debo unir en una sola.

Es un programita de promociones donde:
Cada promocion tiene sus clientes, las facturaciones que se le han hecho a cada uno, cuantos
puntos ha ganado con cada facturacion, etc. etc.

La consulta siguiente obtiene los datos del socio y reporta:
Monto facturado en promociones normales
Monto facturado en promociones especiales
Monto Total facturado
( Todo esto para una promocion especifica :IDPROMO )

Código SQL [-]
  SELECT CLIENTE.NROSOCIO AS SOCIO, CLIENTE.NOMBRE AS CLIENTE, 
  CLIENTE.APELLIDO AS APELLIDO, CLIENTE.ESTABLECIMIENTO AS ESTABLECIMIENTO,
  SUM(case when espromoesp=true then 0 else FACTURACION.MONTO end) AS M_NORMAL,
  SUM(case when espromoesp=true then FACTURACION.MONTO else 0 end) AS M_ESPECIAL,
  SUM(FACTURACION.MONTO) AS TOT_MONTO
  FROM CLIENTE LEFT JOIN FACTURACION ON FACTURACION.IDCLIENTE=CLIENTE.ID
  where cliente.idpromo = :IDPROMO
  GROUP BY CLIENTE.NOMBRE,CLIENTE.APELLIDO,CLIENTE.ESTABLECIMIENTO,SOCIO
  ORDER BY CLIENTE.APELLIDO ASC, CLIENTE.ESTABLECIMIENTO ASC
Esta otra consulta reporta:
Total de puntos ganados ( en facturaciones normales y especiales )
Total de puntos que el cliente ha canjeado
Total de puntos que tiene en la actualidad ( totalganados - canjeados )
( Todo esto para una promocion especifica :IDPROMO )

Código SQL [-]
  SELECT CLIENTE.ID AS COD, 0 AS CANJEADOS, SUM(FACTURACION.PUNTOS) AS TOTALPUNTOS
  INTO #TEMP FROM
  CLIENTE JOIN FACTURACION ON CLIENTE.ID = FACTURACION.IDCLIENTE
  WHERE CLIENTE.IDPROMO = PIDPROMO
  GROUP BY COD, CANJEADOS;
  UPDATE #TEMP SET CANJEADOS =
  (SELECT SUM(B.TOTALPUNTOS) FROM CANJE B WHERE B.IDCLIENTE = #TEMP.COD);
  SELECT B.NROSOCIO, B.NOMBRE, B.APELLIDO, B.ESTABLECIMIENTO, 
  TOTALPUNTOS, CANJEADOS, (TOTALPUNTOS - CANJEADOS) AS PUNTOSACTUALES
  FROM #TEMP A
  LEFT OUTER JOIN CLIENTE B ON A.COD = B.ID
  ORDER BY APELLIDO,NOMBRE,ESTABLECIMIENTO ASC
Lo que debo hacer es: mostrar los datos del cliente: nombre apellido y establecimiento y luego
monto total facturado
monto normal
monto especial
puntos ganados
puntos canjeados
puntos actuales

Solo eso... juntar los 2 informes en uno solo

Algun alma caritativa que quiera ayudarme con este problemon ?

Desde ya muchas gracias...

Última edición por dec fecha: 25-11-2005 a las 03:11:09. Razón: ¡¡Encerrad el código fuente entre las etiquetas [SQL] ... [/SQL]!!
Responder Con Cita
 


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


La franja horaria es GMT +2. Ahora son las 12:44:00.


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