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 07-01-2008
Avatar de Gaim2205
Gaim2205 Gaim2205 is offline
Miembro
 
Registrado: ago 2007
Ubicación: Durango, Mexico
Posts: 144
Poder: 17
Gaim2205 Va por buen camino
Reusar consulta

Otra vez yo, siento ser una molestia pero ando en un proyecto algo grande que involucra consultas igual de grandes :P y por ahi me van saliendo dudas, generalmente trato de resolverlas yo mismo pero bueno ahora tengo una duda.

Me ahorraria mucho trabajo si pudiera reutilizar una parte de mi consulta mas adelante dentro de la misma. Me explico:

Por ejemplo tengo lo siguiente:
Código SQL [-]
SELECT sum(case when Concepto = 1510 then importe else 0 end)+
sum(case when Concepto = 1515 then importe else 0 end)+
sum(case when Concepto = 1520 then importe else 0 end)+
sum(case when Concepto = 1615 then importe else 0 end)+
sum(case when Concepto = 1625 then importe else 0 end) AS 'DESPENSA'
......
FROM ......

Mas adelante dentro de la misma consulta tengo que repetir ese codigo y agregarle un poco mas. Para no tener que escribir toooodo de nuevo, no se puede hacer algo como
Código SQL [-]
select DESPENSA + sum(case when Concepto = 1630 then importe else 0 end) AS 'DESPENSA2'

Se que podria guardar variables en delphi con cada trozo de mi consulta, pero por el momento es indispensable que lo haga todo en un select grandisimo.

Utilizo sql server 2000
Gracias....

Última edición por Gaim2205 fecha: 07-01-2008 a las 23:19:35.
Responder Con Cita
  #2  
Antiguo 07-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
En casos como este, en ocasiones creo primero una vista que hace los cálculos y luego un select de la vista, donde puedo reutilizarlos libremente.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 08-01-2008
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Reusar consulta

Hola:Una variante puede ser la construcion dinamica de la consulta con algo parecido a esto:
Responder Con Cita
  #4  
Antiguo 08-01-2008
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Reusar consulta

Hola:Una variante puede ser la construcion dinamica de la consulta con algo parecido a esto:CREATE PROCEDURE MostrarBolsoJTurno @area int, @cadena nvarchar(4000)ASdeclare @SQLString nvarchar(4000)set @SQLString = 'SELECT dbo.Bolsos.id, dbo.Bolsos.cartaporte, dbo.Bolsos.sek, dbo.Bolsos.jpy, dbo.Bolsos.total, dbo.Bolsos.ruta' + CHAR(13)set @SQLString = @SQLString + 'FROM dbo.Bolsos INNER JOIN dbo.Usuarios ON dbo.Bolsos.usuario = dbo.Usuarios.id' + CHAR(13)set @SQLString = @SQLString + 'WHERE ' + @cadena + CHAR(13)set @SQLString = @SQLString + 'Order by fecha, ruta'EXEC sp_executesql @SQLStringGOO sea utilizar una cadena y luego pasarle los parametros que quieras.SaludosLuis Garcia
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
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
reusar un mismo form enecumene OOP 7 18-08-2007 01:44:48
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 15:52:15
consulta sobre consulta superhopi SQL 2 16-05-2003 19:01:47


La franja horaria es GMT +2. Ahora son las 17:13:27.


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