Agrupar Compras con despacho

09/03/2005 - 15:29 por Julio | Informe spam
Hola grupo

Quiro hacer esto que muestro mas abajo, pero ante le explico que esto es
para genear ordenes de compras y funciona de la siguiente manera
Si un departamento pide un articulo (detalleID), para ese articulo de pueden
generar dos o mas ordenes de compras hasta complerar la cantidad que se
pidio


Requisicion ( es la tabla para pedir los Item)

RequisicionID numero fecha
01 222 xxxx



Detalle_requsicion

DetalleID requisicion_ID Detalle_Item Cantidad_requerida
1 01 PCs 15


Tabla Compras

CompraID RequsicionID Fecha Nota
1 01 xxxxxx xxxxxx
2 01 xxxxxx xxxxxx


Detalle_compras

CompraID DetalleID Cantidad_comprada
1 1 5
2 1 10



Tengo otra tabla despacho

DespachoID CompraID Fecha Nota
1 1 xxxx xxx
2 1 xxxx xxxxx
3 1 xxxxxxx xxxxx
4 2 xxx xxx
5 2

Detalle_Despacho

DespachoID DetalleID Cantidad_despachada
1 1 2
2 1 2
3 1 1
4 1 5
5 1 5

Quiero saber con una vista que cantidad de me quedan por despachar para cada
compra


DespachoID compraID DetalleID Cantidad_compra
Cantidad_despachada cantidad_restante_por_despachar
1 1 1
5 2
3
2 1 1
5 2
1
3 1 1
5 1
0
4 2 1
10 5
5
5 2 1
10 5
0

Preguntas similare

Leer las respuestas

#1 Maxi
09/03/2005 - 15:46 | Informe spam
Hola, probemos esta consulta a ver como va (revisa el tema de sintaxis por
las dudas ;)

Select
t1.compra_id,t1.detalle_id,t1.cantidad_comprada,t2.cantidad_despachada,t1.cantidad_comprada
-
isnull(t2.cantidad_despachada,0) as Saldo FROM detalle_compras T1 left join
(select sum(cantidad_despachada) as cantidad_despachada,detalle_id,compra_id
FROM
detalle_despacho inner join despacho on despacho.despacho_id =
detalle_despacho.despacho_id
group by detalle_id,compra_id ) t2 on
t1.compra_id = t2.compra_id and
t1.detalle_id = t2.detalle_id




Salu2
Maxi


"Julio" escribió en el mensaje
news:OJ%
Hola grupo

Quiro hacer esto que muestro mas abajo, pero ante le explico que esto es
para genear ordenes de compras y funciona de la siguiente manera
Si un departamento pide un articulo (detalleID), para ese articulo de
pueden generar dos o mas ordenes de compras hasta complerar la cantidad
que se pidio


Requisicion ( es la tabla para pedir los Item)

RequisicionID numero fecha
01 222 xxxx



Detalle_requsicion

DetalleID requisicion_ID Detalle_Item Cantidad_requerida
1 01 PCs 15


Tabla Compras

CompraID RequsicionID Fecha Nota
1 01 xxxxxx xxxxxx
2 01 xxxxxx xxxxxx


Detalle_compras

CompraID DetalleID Cantidad_comprada
1 1 5
2 1 10



Tengo otra tabla despacho

DespachoID CompraID Fecha Nota
1 1 xxxx xxx
2 1 xxxx xxxxx
3 1 xxxxxxx xxxxx
4 2 xxx xxx
5 2

Detalle_Despacho

DespachoID DetalleID Cantidad_despachada
1 1 2
2 1 2
3 1 1
4 1 5
5 1 5

Quiero saber con una vista que cantidad de me quedan por despachar para
cada compra


DespachoID compraID DetalleID Cantidad_compra
Cantidad_despachada cantidad_restante_por_despachar
1 1 1 5
2 3
2 1 1 5
2 1
3 1 1 5
1 0
4 2 1 10
5 5
5 2 1 10
5 0







Respuesta Responder a este mensaje
#2 Alejandro Mesa
09/03/2005 - 16:13 | Informe spam
Trata,

select
a.despachoid,
a.compraid,
c.sum_cantidad_comprada as cantidad_comprada,
b.cantidad_despachada,
(c.sum_cantidad_comprada - (select sum(d.cantidad_despachada) from
detalle_despacho as d where d.despachoid = a.despachoid and d.detalleid <=
b.detalleid)) as cantidad_restante_por_despachar
from
despacho as a
inner join
detalle_despacho as b
on a.despachoid = b.despachoid
inner join
(
select
a.compraid,
sum(b.cantidad_comprada) as sum_cantidad_comprada
from
compras as a
inner join
detalle_compras as b
on a.compraid = b.compraid
group by a.compraid
) as c
on a.compraid = c.compraid
order by
a.despachoid,
b.detalleid
go


AMB


"Julio" wrote:

Hola grupo

Quiro hacer esto que muestro mas abajo, pero ante le explico que esto es
para genear ordenes de compras y funciona de la siguiente manera
Si un departamento pide un articulo (detalleID), para ese articulo de pueden
generar dos o mas ordenes de compras hasta complerar la cantidad que se
pidio


Requisicion ( es la tabla para pedir los Item)

RequisicionID numero fecha
01 222 xxxx



Detalle_requsicion

DetalleID requisicion_ID Detalle_Item Cantidad_requerida
1 01 PCs 15


Tabla Compras

CompraID RequsicionID Fecha Nota
1 01 xxxxxx xxxxxx
2 01 xxxxxx xxxxxx


Detalle_compras

CompraID DetalleID Cantidad_comprada
1 1 5
2 1 10



Tengo otra tabla despacho

DespachoID CompraID Fecha Nota
1 1 xxxx xxx
2 1 xxxx xxxxx
3 1 xxxxxxx xxxxx
4 2 xxx xxx
5 2

Detalle_Despacho

DespachoID DetalleID Cantidad_despachada
1 1 2
2 1 2
3 1 1
4 1 5
5 1 5

Quiero saber con una vista que cantidad de me quedan por despachar para cada
compra


DespachoID compraID DetalleID Cantidad_compra
Cantidad_despachada cantidad_restante_por_despachar
1 1 1
5 2
3
2 1 1
5 2
1
3 1 1
5 1
0
4 2 1
10 5
5
5 2 1
10 5
0








Respuesta Responder a este mensaje
#3 Julio
09/03/2005 - 16:41 | Informe spam
Gracias por responder, en la vista me envias max, necesito tener el
despachoID

Esta es la estructura de la tabla


CREATE TABLE [dbo].[RequisicionPorDepartamento] (
[RequisicionID] [int] IDENTITY (1, 1) NOT NULL ,
[RequisicionNumero] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[Fecha_Requerida] [datetime] NULL ,
[DepartamentoID] [int] NULL ,
[ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[DetalleDeRequisicion] (
[DetalleID] [int] IDENTITY (1, 1) NOT NULL ,
[RequisicionID] [int] NULL ,
[Item] [int] NULL ,
[Descripcion] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cantidad] [int] NULL ,
[DepartamentoID] [int] NULL
[status] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Orden_de_compras] (
[CompraID] [int] IDENTITY (1, 1) NOT NULL ,
[RequsicionID] [int] NULL
) ON [PRIMARY]
Go

CREATE TABLE [dbo].[Insertar_detalles_compras] (
[Insertar_Detalle_CompraID] [int] IDENTITY (1, 1) NOT NULL ,
[CompraID] [int] NULL ,
[RequisicionID] [int] NULL ,
[Detalle_Requisicion] [int] NULL ,
[Cantidad] [int] NULL ,
[DetalleID] [int] NULL
) ON [PRIMARY]

CREATE TABLE [dbo].[Despacho] (
[DespachoID] [int] IDENTITY (1, 1) NOT NULL ,
[CompraID] [int] NULL ,
[Numero_Despacho] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[Fecha] [datetime] NULL ,
[Atencion] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Status] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO



CREATE TABLE [dbo].[Detalle_despacho] (
[Detalle_DespachoID] [int] IDENTITY (1, 1) NOT NULL ,
[DespachoID] [int] NULL ,
[DetalleID] [int] NULL ,
[Descripcion] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cantidad] [int] NULL
) ON [PRIMARY]
GO















"Julio" wrote in message
news:OJ%
Hola grupo

Quiro hacer esto que muestro mas abajo, pero ante le explico que esto es
para genear ordenes de compras y funciona de la siguiente manera
Si un departamento pide un articulo (detalleID), para ese articulo de
pueden generar dos o mas ordenes de compras hasta complerar la cantidad
que se pidio


Requisicion ( es la tabla para pedir los Item)

RequisicionID numero fecha
01 222 xxxx



Detalle_requsicion

DetalleID requisicion_ID Detalle_Item Cantidad_requerida
1 01 PCs 15


Tabla Compras

CompraID RequsicionID Fecha Nota
1 01 xxxxxx xxxxxx
2 01 xxxxxx xxxxxx


Detalle_compras

CompraID DetalleID Cantidad_comprada
1 1 5
2 1 10



Tengo otra tabla despacho

DespachoID CompraID Fecha Nota
1 1 xxxx xxx
2 1 xxxx xxxxx
3 1 xxxxxxx xxxxx
4 2 xxx xxx
5 2

Detalle_Despacho

DespachoID DetalleID Cantidad_despachada
1 1 2
2 1 2
3 1 1
4 1 5
5 1 5

Quiero saber con una vista que cantidad de me quedan por despachar para
cada compra


DespachoID compraID DetalleID Cantidad_compra
Cantidad_despachada cantidad_restante_por_despachar
1 1 1 5
2 3
2 1 1 5
2 1
3 1 1 5
1 0
4 2 1 10
5 5
5 2 1 10
5 0







Respuesta Responder a este mensaje
#4 Maxi
09/03/2005 - 17:13 | Informe spam
Hola, pero como? puede haber mas de un despacho con lo cual te duplicaria
las lineas


Salu2
Maxi


"Julio" escribió en el mensaje
news:
Gracias por responder, en la vista me envias max, necesito tener el
despachoID

Esta es la estructura de la tabla


CREATE TABLE [dbo].[RequisicionPorDepartamento] (
[RequisicionID] [int] IDENTITY (1, 1) NOT NULL ,
[RequisicionNumero] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[Fecha_Requerida] [datetime] NULL ,
[DepartamentoID] [int] NULL ,
[ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[DetalleDeRequisicion] (
[DetalleID] [int] IDENTITY (1, 1) NOT NULL ,
[RequisicionID] [int] NULL ,
[Item] [int] NULL ,
[Descripcion] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cantidad] [int] NULL ,
[DepartamentoID] [int] NULL
[status] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Orden_de_compras] (
[CompraID] [int] IDENTITY (1, 1) NOT NULL ,
[RequsicionID] [int] NULL
) ON [PRIMARY]
Go

CREATE TABLE [dbo].[Insertar_detalles_compras] (
[Insertar_Detalle_CompraID] [int] IDENTITY (1, 1) NOT NULL ,
[CompraID] [int] NULL ,
[RequisicionID] [int] NULL ,
[Detalle_Requisicion] [int] NULL ,
[Cantidad] [int] NULL ,
[DetalleID] [int] NULL
) ON [PRIMARY]

CREATE TABLE [dbo].[Despacho] (
[DespachoID] [int] IDENTITY (1, 1) NOT NULL ,
[CompraID] [int] NULL ,
[Numero_Despacho] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
,
[Fecha] [datetime] NULL ,
[Atencion] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Status] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO



CREATE TABLE [dbo].[Detalle_despacho] (
[Detalle_DespachoID] [int] IDENTITY (1, 1) NOT NULL ,
[DespachoID] [int] NULL ,
[DetalleID] [int] NULL ,
[Descripcion] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cantidad] [int] NULL
) ON [PRIMARY]
GO















"Julio" wrote in message
news:OJ%
Hola grupo

Quiro hacer esto que muestro mas abajo, pero ante le explico que esto es
para genear ordenes de compras y funciona de la siguiente manera
Si un departamento pide un articulo (detalleID), para ese articulo de
pueden generar dos o mas ordenes de compras hasta complerar la cantidad
que se pidio


Requisicion ( es la tabla para pedir los Item)

RequisicionID numero fecha
01 222 xxxx



Detalle_requsicion

DetalleID requisicion_ID Detalle_Item Cantidad_requerida
1 01 PCs 15


Tabla Compras

CompraID RequsicionID Fecha Nota
1 01 xxxxxx xxxxxx
2 01 xxxxxx xxxxxx


Detalle_compras

CompraID DetalleID Cantidad_comprada
1 1 5
2 1 10



Tengo otra tabla despacho

DespachoID CompraID Fecha Nota
1 1 xxxx xxx
2 1 xxxx xxxxx
3 1 xxxxxxx xxxxx
4 2 xxx xxx
5 2

Detalle_Despacho

DespachoID DetalleID Cantidad_despachada
1 1 2
2 1 2
3 1 1
4 1 5
5 1 5

Quiero saber con una vista que cantidad de me quedan por despachar para
cada compra


DespachoID compraID DetalleID Cantidad_compra
Cantidad_despachada cantidad_restante_por_despachar
1 1 1 5 2 3
2 1 1 5 2 1
3 1 1 5 1 0
4 2 1 10 5 5
5 2 1 10 5 0











Respuesta Responder a este mensaje
#5 Julio
09/03/2005 - 17:16 | Informe spam
Si eso lo entiendo, lo que sucede es que quiero saber lo que me queda por
despachar por cada depacho que realize en proporcion a lo que compre.

Quiero saber si esto es posible, lo que sucede es que cuando se genera el
documento de entrega de un despacho se necesita especificar lo que resta y
ademas el sistema tiene que tener el control de ponerle al usuario que
despache lo que queda, para que el no pueda generar un despacho mayor de la
cantidad que queda.

Gracias


"Maxi" wrote in message
news:
Hola, pero como? puede haber mas de un despacho con lo cual te duplicaria
las lineas


Salu2
Maxi


"Julio" escribió en el mensaje
news:
Gracias por responder, en la vista me envias max, necesito tener el
despachoID

Esta es la estructura de la tabla


CREATE TABLE [dbo].[RequisicionPorDepartamento] (
[RequisicionID] [int] IDENTITY (1, 1) NOT NULL ,
[RequisicionNumero] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[Fecha_Requerida] [datetime] NULL ,
[DepartamentoID] [int] NULL ,
[ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[DetalleDeRequisicion] (
[DetalleID] [int] IDENTITY (1, 1) NOT NULL ,
[RequisicionID] [int] NULL ,
[Item] [int] NULL ,
[Descripcion] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cantidad] [int] NULL ,
[DepartamentoID] [int] NULL
[status] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Orden_de_compras] (
[CompraID] [int] IDENTITY (1, 1) NOT NULL ,
[RequsicionID] [int] NULL
) ON [PRIMARY]
Go

CREATE TABLE [dbo].[Insertar_detalles_compras] (
[Insertar_Detalle_CompraID] [int] IDENTITY (1, 1) NOT NULL ,
[CompraID] [int] NULL ,
[RequisicionID] [int] NULL ,
[Detalle_Requisicion] [int] NULL ,
[Cantidad] [int] NULL ,
[DetalleID] [int] NULL
) ON [PRIMARY]

CREATE TABLE [dbo].[Despacho] (
[DespachoID] [int] IDENTITY (1, 1) NOT NULL ,
[CompraID] [int] NULL ,
[Numero_Despacho] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL ,
[Fecha] [datetime] NULL ,
[Atencion] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Status] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO



CREATE TABLE [dbo].[Detalle_despacho] (
[Detalle_DespachoID] [int] IDENTITY (1, 1) NOT NULL ,
[DespachoID] [int] NULL ,
[DetalleID] [int] NULL ,
[Descripcion] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Cantidad] [int] NULL
) ON [PRIMARY]
GO















"Julio" wrote in message
news:OJ%
Hola grupo

Quiro hacer esto que muestro mas abajo, pero ante le explico que esto es
para genear ordenes de compras y funciona de la siguiente manera
Si un departamento pide un articulo (detalleID), para ese articulo de
pueden generar dos o mas ordenes de compras hasta complerar la cantidad
que se pidio


Requisicion ( es la tabla para pedir los Item)

RequisicionID numero fecha
01 222 xxxx



Detalle_requsicion

DetalleID requisicion_ID Detalle_Item Cantidad_requerida
1 01 PCs 15


Tabla Compras

CompraID RequsicionID Fecha Nota
1 01 xxxxxx xxxxxx
2 01 xxxxxx xxxxxx


Detalle_compras

CompraID DetalleID Cantidad_comprada
1 1 5
2 1 10



Tengo otra tabla despacho

DespachoID CompraID Fecha Nota
1 1 xxxx xxx
2 1 xxxx xxxxx
3 1 xxxxxxx xxxxx
4 2 xxx xxx
5 2

Detalle_Despacho

DespachoID DetalleID Cantidad_despachada
1 1 2
2 1 2
3 1 1
4 1 5
5 1 5

Quiero saber con una vista que cantidad de me quedan por despachar para
cada compra


DespachoID compraID DetalleID Cantidad_compra
Cantidad_despachada cantidad_restante_por_despachar
1 1 1 5 2 3
2 1 1 5 2 1
3 1 1 5 1 0
4 2 1 10 5 5
5 2 1 10 5 0















Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida