Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   como Anido un select a esta instruccion (https://www.clubdelphi.com/foros/showthread.php?t=73494)

jazmin 26-04-2011 18:45:32

como Anido un select a esta instruccion
 
En el capitulo anterior jejeje

me ayudaron a hacer una consulta, esta de aqui.

Código SQL [-]
Select a.codigo,(Min (a.CostoEnt) ) as Costo ,b.formula,b.present,b.concentra,(Sum(b.minimo)/Count(b.minimo)) as minimox
from barras.dbf a,productos.dbf b
where ((a.inventario="SI")
and (a.codigo=b.codigo))
Group By a.codigo,b.formula,b.present,b.concentra
having ( ( sum(a.existent)+ sum(a.ExistGra) ) < (Sum(b.minimo)/Count(b.minimo)))
order by a.codigo asc

ya funciona me da los productos bajos de inventario y cual es el costo mas barato de cada uno de ellos ufffffff dificil pero lo conseguimos, ahora quiero agregar el provedor el provedor y nombre del producto creo que una buena opcion seria anidar un select pero no se como ji ji ji
eso es el problema ya intente haciendo esto pero no funciono

Código SQL [-]
 Select * From  (
Select a.codigo,(Min (a.CostoEnt) ) as Costo ,b.formula,b.present,b.concentra,(Sum(b.minimo)/Count(b.minimo)) as minimox
from barras.dbf a,productos.dbf b
where ((a.inventario="SI")
and (a.codigo=b.codigo))
Group By a.codigo,b.formula,b.present,b.concentra
having ( ( sum(a.existent)+ sum(a.ExistGra) ) < (Sum(b.minimo)/Count(b.minimo)))
order by a.codigo asc       ){Esto seria una tabla, por asi decirlo y aqui agregaria la otra tabla, no se si sea valido........ lo haria eso algo asi ?}  c,Productos.dbf d
Where d.costo=c.costo  
and d.codigo=c.codigo

oscarac 26-04-2011 18:53:42

tu consulta no ha salido muy bien en la pantalla

pero si quieres sacar el nombre del proveedor y del producto (me imagino que tienes esos codigos en campos) podrias hacer algo como esto

Código SQL [-]
 
Select A.Codigo, P.descripcion, PV.RazonSocial 
from Codigos A
Left Join TabladeProductos P on A.Codigo = P.Codigo
Left Join TabladeProveedores PV on A.CodigoProveedor = P.CodigoProveedor
....
...

oscarac 26-04-2011 19:02:47

P.D. como te menciono roman en la consulta anterior
no es recomendable usar consultas anidadas puesto que son lentas mas aun considerando las bases de datos que usas

jazmin 26-04-2011 19:20:29

no funciona asi
 
la sentencia sql si sali completa,

no me preocupa mucho esta instruccion porque solo se va ejecutar muy poco cuando se quiera surtir.

el usuario le pedira al sistema el estatus y el sistema le dira que falta y de donde debe surtirlo

no me funciona asi porque la infomacion viene de una subconsulta donde no viene el exixtencia global esa la consulto yo

como hago un select anidado en delphi hay una nomenclatura especial

ya vi que le ponen select * From (

o tambien asi Select * From [
pero ninguna de las dos me funciona.
:(

overloaded 21-05-2011 11:06:55

el problema lo tienes en el ORDER BY, ya que al hacer un SELECT anidado debes ubicarlo al final de la última sentencia.
Es lo único que tienes que cambiar.

La consulta quedaría asi:


Select * From (
Select a.codigo,(Min (a.CostoEnt) ) as Costo ,b.formula,b.present,b.concentra,(Sum(b.minimo)/Count(b.minimo)) as minimox
from barras.dbf a,productos.dbf b
where ((a.inventario="SI")
and (a.codigo=b.codigo))
Group By a.codigo,b.formula,b.present,b.concentra
having ( ( sum(a.existent)+ sum(a.ExistGra) ) < (Sum(b.minimo)/Count(b.minimo)))
) c, Productos.dbf d
Where d.costo=c.costo
and d.codigo=c.codigo
order by c.codigo asc


La franja horaria es GMT +2. Ahora son las 00:45:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi