Club Delphi  
    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 25-04-2011
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
Wink Utilizar un valor calculado en un Where

Hola Chicos


Tengo un problema con una sentencia sql
nunca habia tenido necesidad de hacer una consulta asi donde un valor calculado lo necesitara incluir en la condicion

miren asi esta mi sentencia original vdd....

Código SQL [-]
 
Select codigo,(sum(existent)) as ExistenTT,b.formula,b.present,b.concentra
from barras.dbf a,productos.dbf b
where inventario="SI"
and a.codigo=b.codigo
Group By codigo,b.formula,b.present,b.concentra
order by ExistenTT,codigo asc


asi funciona pero no es lo que quiero

lo que quiero es agregar EXistenTT en el Where pero no me lo permite
Código SQL [-]
 
Select codigo,(sum(existent)) as ExistenTT,b.formula,b.present,b.concentra
from barras.dbf a,productos.dbf b
where inventario="SI"
and a.codigo=b.codigo
and ExistenTT="0"
Group By codigo,b.formula,b.present,b.concentra
order by ExistenTT,codigo asc

como lo puedo hacer

Última edición por jazmin fecha: 25-04-2011 a las 18:23:26.
Responder Con Cita
  #2  
Antiguo 25-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
y que condicion seria la que necesitas ?
te recomiendo ademas usar left join en lugar de jalar la informacion de 2 tablas
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 25-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
Seria mas o menos algo asi

Código SQL [-]
Select a.Codigo, Sum (A.Existent) As ExistenTT, B.Formula, b.Present, b.concentra
From Barras a
Left Join Productos B on A.Codigo = B.Codigo
Where b.Inventario = 'SI' 
Group By codigo,b.formula,b.present,b.concentra
Having Sum (A.Existent) = 0
order by ExistenTT,codigo asc

comentas si te funciona
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 25-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jazmin Ver Mensaje
Hola Chicos
Hola

Cita:
Empezado por jazmin Ver Mensaje
nunca habia tenido necesidad de hacer una consulta asi donde un valor calculado lo necesitara incluir en la condicion
Necesitas poner la condición en la cláusula HAVING:

Código SQL [-]
 
Select codigo,(sum(existent)) as ExistenTT,b.formula,b.present,b.concentra
from barras.dbf a,productos.dbf b
where inventario="SI"
and a.codigo=b.codigo
Group By codigo,b.formula,b.present,b.concentra
having ExistenTT="0"
order by ExistenTT,codigo asc

// Saludos
Responder Con Cita
  #5  
Antiguo 25-04-2011
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
Unhappy no funciono

mira en una tabla tengo la descripcion del producto y el otra solo el codigo del producto

cuando necesito saber informacion del producto uno las 2 tablas

de cada tipo de producto hay 2 o mas marcas asi que necesito sumar los productos de un mismo tipo aunque sean diferentes marcas y saber cuales existencias tengo agotadas

un poco dificil de explicar no se si me di a entender ji ji ji

la instruccion que me comentaste no funciono me dice capability not soported

alguna otra idea?
Responder Con Cita
  #6  
Antiguo 25-04-2011
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
Red face tampoco funciono roman

me manda un mensaje feo que dice " invalid Field Name ExistenTT "


lo mismo que te decia si pongo Where ExistenTT="0"

segun entiendo es que ExistenTT no es un campo real es una variable que cree en tiempo de ejecucion no?

o que sera?
Responder Con Cita
  #7  
Antiguo 25-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
nos gustaria saber que base de datos estas usando
de igual forma si pudieras colocar algunos ejemplo de los datos que manejas
como los tienes y que es lo que esperas obtener, eso nos ayudaria bastante

Algo asi....
ejemplo

Cita:
tabla 1
codigo cantidad
0001 10.00
0002 12.00
Cita:
Tabla2
CodigoMarca Cantidad
0001 15.00
0002 -3.00
Resultado
Cita:
0001 25.00
0002 9.00
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #8  
Antiguo 25-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por jazmin Ver Mensaje
me manda un mensaje feo que dice " invalid Field Name ExistenTT "


lo mismo que te decia si pongo Where ExistenTT="0"

segun entiendo es que ExistenTT no es un campo real es una variable que cree en tiempo de ejecucion no?

o que sera?
entonces usa Having sum(existent) = 0
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #9  
Antiguo 25-04-2011
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
Wink Ya funciono

Wuauu

ya funciono si que son listos ustedes!

pero nunca habia utilizado having explicame que es

porque seguramente va haber cientos de articulos sql por ahi pero me gusta escuchar la explicaciones de las personas que las usan son como mas faciles de entender,
me explicas plis como ultimo favorzote!


ha y muchas gracias!!!!
Responder Con Cita
  #10  
Antiguo 25-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
el Having funciona como un filtro que captura lo que en la condicion establezcas

pero no nos dijiste que base de datos utilizas
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #11  
Antiguo 25-04-2011
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
Red face

ha perdon..

uso tablas DataBase IV

ninguna base de datos asi como tal solo tablas independientes
Responder Con Cita
  #12  
Antiguo 25-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
ahhhh ok

si tienes alguna otra duda... trataremos de ayudarte

saludos
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #13  
Antiguo 26-04-2011
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.232
Poder: 20
ElKurgan Va camino a la fama
Creo que, a falta de otra solución, no te queda otro remedio que hacer un select anidado:

Código SQL [-]
 
Select * from (
Select codigo,(sum(existent)) as ExistenTT,b.formula,b.present,
b.concentra
from barras.dbf a,productos.dbf b
where inventario="SI"
and a.codigo=b.codigo
Group By codigo,b.formula,b.present,b.concentra
order by ExistenTT,codigo asc)
where ExistenTT = 0

Esto, al menos en el SQL estandar, funciona

Un saludo
Responder Con Cita
  #14  
Antiguo 26-04-2011
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
Wink ya lo prove y no funciono

Me gusto tu opcion por que no habia usado select animados pero ................me marca un error esa instrucccion
la estoy intentando ingresar a un Query en la propiedad Sql, manejo Tablas Database IV no se que mas decirte je jej je

alguna alternativa o otra forma de declararlo?

Responder Con Cita
  #15  
Antiguo 26-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En mi opinión, las subconsultas hay que evitarlas siempre que sea posible porque son más lentas. Por otro lado, son selects anidados no animados

// Saludos
Responder Con Cita
  #16  
Antiguo 26-04-2011
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
Wink sorry

jajajaja es que es un select bien buena onda jaja esta animado jajaj sorry

fue error de dedo.

psi ya se que hay que evitarlo pero si paso esto un stringgrid y ahi hago una segunda consulta creo que seria mas lento, y si quisiera agotar esta posibilidad.y de paso aprender un poco jeje, voy a abrir un nuevo hilo porque creo que ya es un tema nuevo haber como me va

gracias!!!!!
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Utilizar un valor de un Select dentro de otro Select gluglu SQL 6 15-04-2011 15:22:36
Obtener valor de Campo Calculado jhonalone Tablas planas 7 21-03-2011 18:10:17
como utilizar valor de un Qexpr oscarac Impresión 0 14-03-2011 07:28:36
valor en blanco de IWEdit1 despues de utilizar AsyncClick burgosrodas Internet 0 23-07-2010 02:23:39
Campo Calculado!!! Ledian_Fdez OOP 1 03-10-2007 23:10:01


La franja horaria es GMT +2. Ahora son las 02:37:35.


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