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 20-04-2010
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
Restar 2 select

Hola .. necesito restar 2 select y que el resultado sea un solo registro..
(en SQL 2000)

ej.

Select Sum(campo1) as Total from tabla1 -- > supongamos devuelve 9

select sum(campo2) as Total from tabla2 -- > sup. devuelve 4

Necesito que la instruccion devuelva un solo registro con el valor 5.

Deberia ser algo tan simple como poner un signo MENOS entre los select o algo asi ... pero probe con "-" , "MINUS" , "RESTAR" , ... "QUITAMELO O TE ASESINO".. pero nada ...

Sds y gracias por su tiempo...
Responder Con Cita
  #2  
Antiguo 20-04-2010
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 17
TOPX Va camino a la fama
Hola,

Sin haberlo probado y estando medio dormido, se me ocurre que puede intentar:
Código SQL [-]
select total1 - total2
from (
 select sum(campo1) as total1
 from tabla1
  union all
 select sum(campo2) as total2
 from tabla2
)
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #3  
Antiguo 20-04-2010
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
Gracias por el madrugon ...

Hola Topx .. era buena la idea ... asi como esta escrita da error de sintaxis

Lo que hice fue crear una VISTA con la UNION ... peeero no logro que
el SELECT me devuelta UN REGISTRO ! ... me devuelve los DOS..
sigo en la lucha ...
gracias
Responder Con Cita
  #4  
Antiguo 20-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola ingel, con UNION no te va a tomar como dos campos diferentes sino la cantidad de registros que tengan ambos select en tu caso 2. A mi se me ocurre algo así:

Código SQL [-]
Select Sum(campo1) - (Select Sum(campo2) From tabla2) As Total
From tabla1

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 20-04-2010
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
gracias Caro .. .creo que eso va a funcionar

saluditos..
Responder Con Cita
  #6  
Antiguo 20-04-2010
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 17
TOPX Va camino a la fama
Vale, tienen razón. Yo por acá pude hacerlo así:

Código SQL [-]
select sum(total)
from (
 select sum(campo1) as total
 from tabla1
  union all
 select sum(campo2)*(-1) as total
 from tabla2
)

Y así también:

Código SQL [-]
select 
 (
  select sum(campo1) as total1
  from tabla1
 ) - (
  select sum(campo2) as total2
  from tabla2
 )
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #7  
Antiguo 20-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por TOPX Ver Mensaje
.............Yo por acá pude hacerlo así:

Código SQL [-]
select sum(total)
from (
select sum(campo1) as total
from tabla1
union all
select sum(campo2)*(-1) as total
from tabla2
)




Y así también:


Código SQL [-]
select
(
select sum(campo1) as total1
from tabla1
) - (
select sum(campo2) as total2
from tabla2
)


Hola TOPX, el primero si funciona , pero al segundo le falta el From, al no tener el From daría error.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
Restar Fechas jsanchez OOP 2 08-02-2006 19:29:55
Problema conuna consulta select...not in (select ...) VRO Firebird e Interbase 2 11-08-2005 08:56:35
5 select de 5 tablas diferentes en un select solo sakuragi SQL 6 15-06-2005 18:57:06
Select anidado: Select from (select....) Malon SQL 2 14-10-2004 14:01:24
Select anidado ( Select from select ) Malon Firebird e Interbase 1 05-10-2004 04:14:38


La franja horaria es GMT +2. Ahora son las 03:39:01.


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