Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2011
DasGrun DasGrun is offline
Miembro
 
Registrado: abr 2008
Posts: 109
Poder: 17
DasGrun Va por buen camino
Between en Case de una Consulta

Buenas tardes, una vez mas de su valiosa ayuda.
estoy usando Sql Server 2003.
explico.
tengo la siguiente tabla. a esta tabla necesito hacerle una consulta de tomar el valor Neto que es calculado de la suma total de credito menos la suma total del debito de un determinado Mes. y colocarlo en una columna.
tabla
Tabla.jpg

ID CUENTA CREDITO DEBITO FECHA NETO
1 L. 1,000.00 L. 0.00 01/01/2011 L. 25,000.00
2 L. 2,000.00 L. 0.00 08/01/2011
3 L. 0.00 L. 500.00 05/01/2011
4 L. 2,500.00 L. 0.00 05/02/2011 L. 3,500.00
5 L. 2,000.00 L. 0.00 08/02/2011
6 L. 0.00 L. 1,000.00 25/02/2011
7 L. 3,200.00 L. 0.00 06/03/2011 L. 3,000.00
8 L. 0.00 L. 200.00 08/03/2011


lo que se quiere hacer es que me presente este resultado:
Tabla 1.PNG
ENERO FEBRERO MARZO
L. 25,000.00 L. 3,500.00 L. 3,000.00


Lo He estado haciendo con Case y between en un select y no me presenta el resultado luego lo hice de esta forma y me aparece en forma vertical.
Código SQL [-]
SELECT 
SUM(GL20000.DEBITAMT) - SUM(GL20000.CRDTAMNT) AS ENERO
FROM
  GL20000
  INNER JOIN dbo.GL00100 ON (GL20000.ACTINDX = dbo.GL00100.ACTINDX)
  WHERE
  GL00100.MNACSGMT = '51504010' and
  GL20000.TRXDATE BETWEEN '20100101' and '20100131'
UNION ALL
SELECT 
SUM(GL20000.DEBITAMT) - SUM(GL20000.CRDTAMNT) AS ENERO
FROM
  GL20000
  INNER JOIN dbo.GL00100 ON (GL20000.ACTINDX = dbo.GL00100.ACTINDX)
  WHERE
  GL00100.MNACSGMT = '51504010' and
  GL20000.TRXDATE BETWEEN '20100201' and '20100228'
UNION ALL
SELECT 
SUM(GL20000.DEBITAMT) - SUM(GL20000.CRDTAMNT) AS ENERO
FROM
  GL20000
  INNER JOIN dbo.GL00100 ON (GL20000.ACTINDX = dbo.GL00100.ACTINDX)
  WHERE
  GL00100.MNACSGMT = '51504010' and
  GL20000.TRXDATE BETWEEN '20100301' and '20100331'

espero que comprendan y de ante mano muchas gracias.
__________________
Hasta Mis Huesos son Codificados?
Responder Con Cita
  #2  
Antiguo 07-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
investiga sobre pivot... se que en Sql Server 2003 no hay esa posibilidad pero con artificios se puede solucionar
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 21-05-2011
overloaded overloaded is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 2
Poder: 0
overloaded Va por buen camino
podrias hacerlo así:

Código SQL [-]
SELECT 
(
SELECT 
SUM(GL20000.DEBITAMT) - SUM(GL20000.CRDTAMNT)
FROM
  GL20000
  INNER JOIN dbo.GL00100 ON (GL20000.ACTINDX = dbo.GL00100.ACTINDX)
  WHERE
  GL00100.MNACSGMT = '51504010' and
  GL20000.TRXDATE BETWEEN '20100101' and '20100131'
) AS ENERO,
(
SELECT 
SUM(GL20000.DEBITAMT) - SUM(GL20000.CRDTAMNT) 
FROM
  GL20000
  INNER JOIN dbo.GL00100 ON (GL20000.ACTINDX = dbo.GL00100.ACTINDX)
  WHERE
  GL00100.MNACSGMT = '51504010' and
  GL20000.TRXDATE BETWEEN '20100201' and '20100228'
) AS FEBRERO,
(
SELECT 
SUM(GL20000.DEBITAMT) - SUM(GL20000.CRDTAMNT)
FROM
  GL20000
  INNER JOIN dbo.GL00100 ON (GL20000.ACTINDX = dbo.GL00100.ACTINDX)
  WHERE
  GL00100.MNACSGMT = '51504010' and
  GL20000.TRXDATE BETWEEN '20100301' and '20100331'
) AS MARZO,
.....
FROM DUAL
Responder Con Cita
  #4  
Antiguo 21-05-2011
DasGrun DasGrun is offline
Miembro
 
Registrado: abr 2008
Posts: 109
Poder: 17
DasGrun Va por buen camino
Gracias lo voy a probar, he estando probando de estos tipos de PIVOT pero no me da el resultado que necesito.

¿cual tabla se colocaria como Master?

saludos
__________________
Hasta Mis Huesos son Codificados?
Responder Con Cita
Respuesta



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
Consulta con LIKE es case sensitive? Faust SQL 10 17-06-2008 21:47:21
case??? ivandelphi Varios 4 27-03-2007 00:58:55
Uso del Case IVAND SQL 4 05-04-2006 17:39:48
una consulta case ? Jorge Taveras Firebird e Interbase 6 27-04-2004 21:53:21


La franja horaria es GMT +2. Ahora son las 16:47:15.


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