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 18-12-2007
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 20
juanlaplata Va por buen camino
No sabria decirte si estas haciendo algo mal, me da que el '%' no esta funcionando; Prueba tambien de no llamar por el alias en el HAVING, pon la expresion completa.
si no, una alternativa es que , a tu recordset le asignes el codigo sql en runTime, le pasas o no la clausula where, ... , como es esto?
Ejemplo:
Código:
My_Query.sql.Add:= 'SELECT .....' ;
My_Query.sql.Add:= ' FROM .....' ;
if(agrego_Condicion_al_SQL) then    My_Query.sql.Add:= ' WHERE ....';
if(agrego_Orden_al_SQL) then         My_Query.sql.Add:= ' GROUP BY ...' ;
if(agrego_Cond_Extra_al_SQL) then  My_Query.sql.Add:= ' HAVING ....';
My_Query.sql.Add:= ';' ;
Responder Con Cita
  #2  
Antiguo 18-12-2007
RataASP RataASP is offline
Registrado
 
Registrado: dic 2007
Posts: 4
Poder: 0
RataASP Va por buen camino
Problema resuelto...

Estimado Juan:

Ante todo gracias por el aporte.

Estuve investigando un poco y la respuesta para mi problema son la Subconsultas...

En mi caso, tengo que meter el Recordset1 como tabla del Recorsdset2.

Este sería el código de mi Recordset2 (en azul la consulta y en rojo la subconsulta):

SELECT
SUM(totaldebe) AS grantotaldebe,
SUM(totalhaber) AS grantotalhaber,
(SUM(totalhaber)-SUM(totaldebe)) AS grantotalsaldo

FROM
(
SELECT
ctacte.anoperiodo,
ctacte.mesperiodo,
socios.idsocio,
socios.apellido,
socios.nombre,
SUM(CASE WHEN IsNull(ctacte.debe) THEN 0 ELSE ctacte.debe END) AS totaldebe,
SUM(CASE WHEN IsNull(ctacte.haber) THEN 0 ELSE ctacte.haber END) AS totalhaber,
(SUM(CASE WHEN IsNull(ctacte.haber) THEN 0 ELSE ctacte.haber END) - SUM(CASE WHEN IsNull(ctacte.debe) THEN 0 ELSE ctacte.debe END)) AS saldo

FROM
ctacte RIGHT OUTER JOIN socios ON (ctacte.idsocio = socios.idsocio)

WHERE
ctacte.mesperiodo LIKE MMColParam4 AND ctacte.anoperiodo LIKE MMColParam5

GROUP BY
socios.idsocio

HAVING
saldo < 0

ORDER BY
apellido, nombre
) AS subtotales

Saludos!
RataASP
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


La franja horaria es GMT +2. Ahora son las 01:41:16.


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