Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-06-2013
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
Restar Campo Generados de SQL

hola amigos como estan necesito restar el resultado de varias sentencia de sql pero no encuento la forma de hacerlo
Código SQL [-]
 SELECT  COUNT(TIPOTRANSACION)AS P FROM TRANSACIONES WHERE TIPOTRANSACION ='P' 
 SELECT  COUNT(TIPOTRANSACION)AS D FROM TRANSACIONES WHERE TIPOTRANSACION ='D' 
 SELECT  COUNT(TIPOTRANSACION)AS R FROM TRANSACIONES WHERE TIPOTRANSACION ='R'

lo que necesito es restar los campos P, D ,R
Responder Con Cita
  #2  
Antiguo 19-06-2013
systemix systemix is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 7
Poder: 0
systemix Va por buen camino
Hola Korono, que tal!

Bueno a la verdad no entiendo bien tu requerimiento . Puedo comprender sí, que tu tienes en tu tabla transacciones, en el campo TIPOTRANSACION varios valores. Ya nos expusiste algunos: P, D, R. ¿Tu tabla tiene más tipos de transacción?

Supongamos que sí, y tengas en tu tabla transacciones los tipos de transaccion restantes x, y, z. Podrías hacer la siguiente consulta y te daría un resultado similar. Y hasta lo veo mas sencillo:

Código SQL [-]
Select Count(TIPOTRANSACCION) from TRANSACCIONES
where 
TIPOTRANSACCION='x' and
TIPOTRANSACCION='y' and
TIPOTRANSACCION='z'

con una consulta así, puedes obtener lo que querías anteriormente. Ya que estás obviando a contar los tipos P, D y R.

Si no es de esta forma, no veo lo factible de tu consulta, ya que si todos los registros tienen al menos 1 de los tipos de transacción que me dijiste, el resultado te va a dar cero.

Por ejemplo, supongamos que lograste contar todos los registros de tu tabla que necesariamente tienen alguno de los 3 tipos de transaccion:

Nro de Registros: 30.
Nro por TipoTransaccion = P : 15
Nro por TipoTransaccion = D : 10
Nro por TipoTransaccion = R : 5

Restamos P-D-R = 15-10-5 = 0.

Espero haberte ayudado y entendido
Responder Con Cita
  #3  
Antiguo 19-06-2013
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
probare el codigo luego te cuento
Responder Con Cita
  #4  
Antiguo 19-06-2013
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
Cita:
Empezado por systemix Ver Mensaje
Hola Korono, que tal!

Bueno a la verdad no entiendo bien tu requerimiento . Puedo comprender sí, que tu tienes en tu tabla transacciones, en el campo TIPOTRANSACION varios valores. Ya nos expusiste algunos: P, D, R. ¿Tu tabla tiene más tipos de transacción?

Supongamos que sí, y tengas en tu tabla transacciones los tipos de transaccion restantes x, y, z. Podrías hacer la siguiente consulta y te daría un resultado similar. Y hasta lo veo mas sencillo:

Código SQL [-]
Select Count(TIPOTRANSACCION) from TRANSACCIONES
where 
TIPOTRANSACCION='x' and
TIPOTRANSACCION='y' and
TIPOTRANSACCION='z'

con una consulta así, puedes obtener lo que querías anteriormente. Ya que estás obviando a contar los tipos P, D y R.

Si no es de esta forma, no veo lo factible de tu consulta, ya que si todos los registros tienen al menos 1 de los tipos de transacción que me dijiste, el resultado te va a dar cero.

Por ejemplo, supongamos que lograste contar todos los registros de tu tabla que necesariamente tienen alguno de los 3 tipos de transaccion:

Nro de Registros: 30.
Nro por TipoTransaccion = P : 15
Nro por TipoTransaccion = D : 10
Nro por TipoTransaccion = R : 5

Restamos P-D-R = 15-10-5 = 0.

Espero haberte ayudado y entendido

pero esto solo sirve si conoces de antemano los tipos de transacciones y si fueran variables?
estoy revisando una forma, apenas la prueba te aviso
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 19-06-2013
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
amigo systemix la sentencia me devuelve 0 en todo caso supongamos que tengo 5 registro y le resto 2 deberia quedar 3 pero en cambio me regresa 0
Responder Con Cita
  #6  
Antiguo 19-06-2013
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
se me olvido decir que los campos son de tipo texto no numerico
Responder Con Cita
  #7  
Antiguo 19-06-2013
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
Cita:
Empezado por kurono Ver Mensaje
amigo systemix la sentencia me devuelve 0 en todo caso supongamos que tengo 5 registro y le resto 2 deberia quedar 3 pero en cambio me regresa 0

Coloca la estructura de ese archivo y que datos contiene ese campo TipoTransaccion
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #8  
Antiguo 19-06-2013
systemix systemix is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 7
Poder: 0
systemix Va por buen camino
Cita:
Empezado por kurono Ver Mensaje
se me olvido decir que los campos son de tipo texto no numerico
Disculpa que no me haya explicado bien. Cuando hablo de "Nro por TipoTransaccion" me refiero al resultado que te da el count. Yo sé que son de tipo String porque lo estás declarando así en la condición WHERE.
Responder Con Cita
  #9  
Antiguo 19-06-2013
systemix systemix is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 7
Poder: 0
systemix Va por buen camino
Cita:
Empezado por oscarac Ver Mensaje
Coloca la estructura de ese archivo y que datos contiene ese campo TipoTransaccion
Por eso digo amigo oscarac. Kurono debes explicarnos mejor qué consulta necesitas hacer. Quizás se haga de otra forma
Responder Con Cita
  #10  
Antiguo 20-06-2013
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
el campo TipoTransacion es de tipo nvarchar y como dije antes solo quiero restar los resultado de los count o por lo menos saber restar los campo generado por los count
Responder Con Cita
  #11  
Antiguo 20-06-2013
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
Cita:
Empezado por kurono Ver Mensaje
el campo TipoTransacion es de tipo nvarchar y como dije antes solo quiero restar los resultado de los count o por lo menos saber restar los campo generado por los count
creo q no nos has entendido
queremos saber q tipos de Transaccion se graban en ese campo
pq si solo se graban los 3 q tienes, entonces el resultado siempre sera cero
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #12  
Antiguo 20-06-2013
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
si exacto siempres son los tres
Responder Con Cita
  #13  
Antiguo 20-06-2013
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
Cita:
Empezado por kurono Ver Mensaje
amigo systemix la sentencia me devuelve 0 en todo caso supongamos que tengo 5 registro y le resto 2 deberia quedar 3 pero en cambio me regresa 0
entonces no coincide con lo q dices aqui

pon un ejemplo

Cita:
TipoTransaccion
P
P
P
D
D
R
R

q quieres restar?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #14  
Antiguo 20-06-2013
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
lo que quiero restar es la cantidad de registro existente en una tabla no el valor de un campo no se si me explico ahora
Responder Con Cita
  #15  
Antiguo 21-06-2013
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Prueba esto a ver qué te parece.

Imagino que no te costará entenderlo.
si el campo TipoTransaccion es = A sumas 1, si no , sumas -1

Código SQL [-]
select sum( case when TipoTransaccion ='A' then 1 else when TipoTransaccion ='B' OR TipoTransaccion ='C' then -1 else 0 end ) as TOTAL 
form TRANSACIONES 
where TipoTransaccion IN ('A','B','C')

Nos comentas el resultado, por favor.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #16  
Antiguo 23-06-2013
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
probare el codigo luego te cuento
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
Archivos _XXXX.DBF generados por consulta sql klionsis Varios 1 08-09-2008 18:05:43
Como obtener la HORA al Restar minutos en campo TIME ???? AGAG4 Firebird e Interbase 3 20-02-2008 18:55:11
Ficheros generados por delphi.NET Mariolarr .NET 1 29-10-2007 19:59:41
Archivos .MAP generados por Delphi Ana Tudela Varios 2 26-10-2005 18:44:48
Archivos temporales generados por TQuerys Balda Conexión con bases de datos 0 14-04-2005 14:18:29


La franja horaria es GMT +2. Ahora son las 19:23:14.


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