Select .... From Group By ?

25/10/2007 - 18:21 por jmauriciopb | Informe spam
Hola.

Tengo las siguientes tablas.

Item.
iItemId cDescricion iDiaReposicion
1 Art1 5
2 Art2 10
3 Art3 8

El Campo iDiaReposicion es los dias que el Proveedor tarda en
entregarnos la Materia prima desde el pedido.

IItemStock
iItemStockId iIdItem iIdDpto nCantidad
23 1 2 150
24 1 3 400
25 2 2 130
26 2 3 320
25 3 2 50
26 3 3 220

Inv_MovC.
iMovCId dFecha.
109 2007-06-01
110 2007-06-02
111 2007-06-03
112 2007-06-03
113 2007-06-04
114 2007-06-04
Inv_MovC.dFecha solo almacena la fecha.

Inv_MovD.
iMovDId iIdMovC iIdItemStock nCantidad
304 109 23 20
305 109 24 20
306 110 25 20
307 111 23 20
308 112 24 20
309 112 26 20
310 112 23 20
311 113 25 20
312 114 23 20
312 114 24 20

Necesito sum(Inv_MovD.cantidad) de los Items Inv_MovD.iIdItemStock y
agrupar por el numero de dias Item.iDiaReposicion entre un rango de
fechas Inv_MovC.dFecha

Select iIdItemStock, Sum(nCantidad)
From Inv_MovD Inner Join Inv_MovC On Inv_MovD.iIdMovC Inv_MovC.iMovCId
Where Inv_MovC.dFecha Between '20070101' And '20070630'
Group By ?

Aqui es donde no se como hacer para agrupar por Item.iDiaReposicion
La relacion es:
Item.iItemId = IItemStock.iIdItem
IItemStock.iIdItem = Inv_MovD.iIdItemStock.
Inv_MovC.iMovC = Inv_MovD.iIdMovC

Gracias.

Mauricio Pulla.
Cuenca-Ecuador.

Preguntas similare

Leer las respuestas

#1 jeastman - Hotmail
25/10/2007 - 19:55 | Informe spam
Que tal mauricio.

Lo primero que tienes que hacer es incluir la tabla a la cual pertenece el
campo en el from con su respectivo inner join.

Ahora si puedes agregar la columna al group by.

Algo que debes tener en cuenta, todos los campos que pongas en el select y
no esten dentro de una función se deben colocar en el group by.


escribió en el mensaje
news:
Hola.

Tengo las siguientes tablas.

Item.
iItemId cDescricion iDiaReposicion
1 Art1 5
2 Art2 10
3 Art3 8

El Campo iDiaReposicion es los dias que el Proveedor tarda en
entregarnos la Materia prima desde el pedido.

IItemStock
iItemStockId iIdItem iIdDpto nCantidad
23 1 2 150
24 1 3 400
25 2 2 130
26 2 3 320
25 3 2 50
26 3 3 220

Inv_MovC.
iMovCId dFecha.
109 2007-06-01
110 2007-06-02
111 2007-06-03
112 2007-06-03
113 2007-06-04
114 2007-06-04
Inv_MovC.dFecha solo almacena la fecha.

Inv_MovD.
iMovDId iIdMovC iIdItemStock nCantidad
304 109 23 20
305 109 24 20
306 110 25 20
307 111 23 20
308 112 24 20
309 112 26 20
310 112 23 20
311 113 25 20
312 114 23 20
312 114 24 20

Necesito sum(Inv_MovD.cantidad) de los Items Inv_MovD.iIdItemStock y
agrupar por el numero de dias Item.iDiaReposicion entre un rango de
fechas Inv_MovC.dFecha

Select iIdItemStock, Sum(nCantidad)
From Inv_MovD Inner Join Inv_MovC On Inv_MovD.iIdMovC > Inv_MovC.iMovCId
Where Inv_MovC.dFecha Between '20070101' And '20070630'
Group By ?

Aqui es donde no se como hacer para agrupar por Item.iDiaReposicion
La relacion es:
Item.iItemId = IItemStock.iIdItem
IItemStock.iIdItem = Inv_MovD.iIdItemStock.
Inv_MovC.iMovC = Inv_MovD.iIdMovC

Gracias.

Mauricio Pulla.
Cuenca-Ecuador.

Respuesta Responder a este mensaje
#2 Alejandro Mesa
25/10/2007 - 20:11 | Informe spam
Mauricio,

Parece que casi lo tienes .

Selec
Item.iDiaReposicion, Sum(nCantidad)
From
Inv_MovD
Inner Join
Inv_MovC
On Inv_MovD.iIdMovC = Inv_MovC.iMovCId
inner join
IItemStock
on IItemStock.iItemStockId = Inv_MovD.iIdItemStock
inner join
Item
on Item.iItemId = IItemStock.iIdItem
Where
Inv_MovC.dFecha Between '20070101' And '20070630'
Group By
Item.iDiaReposicion,


AMB


"" wrote:

Hola.

Tengo las siguientes tablas.

Item.
iItemId cDescricion iDiaReposicion
1 Art1 5
2 Art2 10
3 Art3 8

El Campo iDiaReposicion es los dias que el Proveedor tarda en
entregarnos la Materia prima desde el pedido.

IItemStock
iItemStockId iIdItem iIdDpto nCantidad
23 1 2 150
24 1 3 400
25 2 2 130
26 2 3 320
25 3 2 50
26 3 3 220

Inv_MovC.
iMovCId dFecha.
109 2007-06-01
110 2007-06-02
111 2007-06-03
112 2007-06-03
113 2007-06-04
114 2007-06-04
Inv_MovC.dFecha solo almacena la fecha.

Inv_MovD.
iMovDId iIdMovC iIdItemStock nCantidad
304 109 23 20
305 109 24 20
306 110 25 20
307 111 23 20
308 112 24 20
309 112 26 20
310 112 23 20
311 113 25 20
312 114 23 20
312 114 24 20

Necesito sum(Inv_MovD.cantidad) de los Items Inv_MovD.iIdItemStock y
agrupar por el numero de dias Item.iDiaReposicion entre un rango de
fechas Inv_MovC.dFecha

Select iIdItemStock, Sum(nCantidad)
From Inv_MovD Inner Join Inv_MovC On Inv_MovD.iIdMovC > Inv_MovC.iMovCId
Where Inv_MovC.dFecha Between '20070101' And '20070630'
Group By ?

Aqui es donde no se como hacer para agrupar por Item.iDiaReposicion
La relacion es:
Item.iItemId = IItemStock.iIdItem
IItemStock.iIdItem = Inv_MovD.iIdItemStock.
Inv_MovC.iMovC = Inv_MovD.iIdMovC

Gracias.

Mauricio Pulla.
Cuenca-Ecuador.


Respuesta Responder a este mensaje
#3 jmauriciopb
25/10/2007 - 23:02 | Informe spam
Gracias por su tiempo Alejandro y Jeastman.

lo que necesitava es algo al estilo de:

Select iIdItemStock, Sum(nCantidad) As Suma, DatePart(yyyy,
Inv_MovC.dFecha) As yyyy, DatePart(mm, Inv_MovC.dFecha) As mm
From Inv_MovD Inner Join Inv_MovC On Inv_MovD.iIdMovC Inv_MovC.iMovCId
Where Inv_MovC.dFecha Between '20070101' And '20071230'
Group By iIdItemStock, DatePart(yyyy, Inv_MovC.dFecha) ,
DatePart(mm, Inv_MovC.dFecha)
order by iIdItemStock

Pero en lugar de agrupar por año y mes, es agrupar la sumar por
periodos dado por Item.iDiaReposicion

Me di cuenta que estaba complicandome mucho y encontre otra manera de
lograr lo que necesito, pero si pueden darle una solucion a este
problema igual se los agradesco mucho.

Saludos.
Mauricio Pulla.
Cuenca-Ecuador
Respuesta Responder a este mensaje
#4 jeastman - Hotmail
29/10/2007 - 02:04 | Informe spam
Pudiste resolver el problema?

Sino es así, pásate el diagrama con la relación de las tablas.

Saludos.

escribió en el mensaje
news:
Hola.

Tengo las siguientes tablas.

Item.
iItemId cDescricion iDiaReposicion
1 Art1 5
2 Art2 10
3 Art3 8

El Campo iDiaReposicion es los dias que el Proveedor tarda en
entregarnos la Materia prima desde el pedido.

IItemStock
iItemStockId iIdItem iIdDpto nCantidad
23 1 2 150
24 1 3 400
25 2 2 130
26 2 3 320
25 3 2 50
26 3 3 220

Inv_MovC.
iMovCId dFecha.
109 2007-06-01
110 2007-06-02
111 2007-06-03
112 2007-06-03
113 2007-06-04
114 2007-06-04
Inv_MovC.dFecha solo almacena la fecha.

Inv_MovD.
iMovDId iIdMovC iIdItemStock nCantidad
304 109 23 20
305 109 24 20
306 110 25 20
307 111 23 20
308 112 24 20
309 112 26 20
310 112 23 20
311 113 25 20
312 114 23 20
312 114 24 20

Necesito sum(Inv_MovD.cantidad) de los Items Inv_MovD.iIdItemStock y
agrupar por el numero de dias Item.iDiaReposicion entre un rango de
fechas Inv_MovC.dFecha

Select iIdItemStock, Sum(nCantidad)
From Inv_MovD Inner Join Inv_MovC On Inv_MovD.iIdMovC > Inv_MovC.iMovCId
Where Inv_MovC.dFecha Between '20070101' And '20070630'
Group By ?

Aqui es donde no se como hacer para agrupar por Item.iDiaReposicion
La relacion es:
Item.iItemId = IItemStock.iIdItem
IItemStock.iIdItem = Inv_MovD.iIdItemStock.
Inv_MovC.iMovC = Inv_MovD.iIdMovC

Gracias.

Mauricio Pulla.
Cuenca-Ecuador.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida