tempali
دوشنبه 06 تیر 1390, 16:10 عصر
سلام.
من می خواستم در sql 2000 یک view یا query درست کنم که بشه مقدار موجودی هر مشتری از یک کالا را رو بدست بیاره .
ساختار تیبلهای من به شکل زیر هست:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[_IN_]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[_IN_]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[_customer_]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[_customer_]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[_out_]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[_out_]
GO
CREATE TABLE [dbo].[_IN_] (
[receipt no] [int] NULL ,
[receipt date] [char] (10) COLLATE Arabic_CI_AS NULL ,
[customer id] [int] NULL ,
[part no] [varchar] (50) COLLATE Arabic_CI_AS NULL ,
[part qty] [int] NULL ,
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[_customer_] (
[customer id] [int] NOT NULL ,
[customer name] [varchar] (100) COLLATE Arabic_CI_AS NOT NULL ,
[customer address] [varchar] (255) COLLATE Arabic_CI_AS NULL ,
[customer phone] [varchar] (50) COLLATE Arabic_CI_AS NULL ,
[customer cell] [varchar] (50) COLLATE Arabic_CI_AS NULL ,
[customer fax] [varchar] (50) COLLATE Arabic_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[_out_] (
[order No] [bigint] NOT NULL ,
[order Date] [varchar] (10) COLLATE Arabic_CI_AS NOT NULL ,
[customer ID] [int] NOT NULL ,
[part no] [varchar] (100) COLLATE Arabic_CI_AS NOT NULL ,
[part qty] [int] NOT NULL ,
[driver name] [varchar] (50) COLLATE Arabic_CI_AS NULL ,
) ON [PRIMARY]
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/02/01", 1, "LG_TV_32", 100)
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/02/01", 2, "LG_TV_42", 100)
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/02/01", 3, "SAMSUNG_TV_32", 100)
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/03/11", 3, "LG_TV_42", 50)
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/02/01", 2, "LG_TV_42", 100)
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/04/05", 1, "LG_TV_42", 100)
GO
INSERT INTO [_customer_]([customer id],[customer name])
VALUES(1, "Customer A")
GO
INSERT INTO [_customer_]([customer id],[customer name])
VALUES(2, "Customer B")
GO
INSERT INTO [_customer_]([customer id],[customer name])
VALUES(3, "Customer C")
GO
INSERT INTO [_out_]([order No], [order Date], [customer ID], [part no],[part qty], [driver name], [car no])
VALUES(10,"90/05/01",1,"LG_TV_42",5,"DRIVER 1","TEH 3310")
GO
INSERT INTO [_out_]([order No], [order Date], [customer ID], [part no],[part qty], [driver name], [car no])
VALUES(10,"90/05/01",1,"LG_TV_42",5,"DRIVER A","TEH 3310")
GO
INSERT INTO [_out_]([order No], [order Date], [customer ID], [part no],[part qty], [driver name], [car no])
VALUES(10,"90/05/11",2,"LG_TV_32",5,"DRIVER C","SHE 1110")
GO
INSERT INTO [_out_]([order No], [order Date], [customer ID], [part no],[part qty], [driver name], [car no])
VALUES(10,"90/05/13",1,"LG_TV_42",10,"DRIVER A","TEH 3310")
GO
INSERT INTO [_out_]([order No], [order Date], [customer ID], [part no],[part qty], [driver name], [car no])
VALUES(10,"90/06/01",3,"LG_TV_42",50,"DRIVER D","ASF 6598")
GO
حالا اگر من بخوام این کا رو بدون استفاده از حلقه های تو در تو داخل vb انجام بدم راهی هست یانه؟
مثلا بگه مقدار موجودی customer a , customer c , customer b از LG_TV_42 باتوجه به میزان ورود و خروج کالا چقدر است.
من می خواستم در sql 2000 یک view یا query درست کنم که بشه مقدار موجودی هر مشتری از یک کالا را رو بدست بیاره .
ساختار تیبلهای من به شکل زیر هست:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[_IN_]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[_IN_]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[_customer_]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[_customer_]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[_out_]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[_out_]
GO
CREATE TABLE [dbo].[_IN_] (
[receipt no] [int] NULL ,
[receipt date] [char] (10) COLLATE Arabic_CI_AS NULL ,
[customer id] [int] NULL ,
[part no] [varchar] (50) COLLATE Arabic_CI_AS NULL ,
[part qty] [int] NULL ,
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[_customer_] (
[customer id] [int] NOT NULL ,
[customer name] [varchar] (100) COLLATE Arabic_CI_AS NOT NULL ,
[customer address] [varchar] (255) COLLATE Arabic_CI_AS NULL ,
[customer phone] [varchar] (50) COLLATE Arabic_CI_AS NULL ,
[customer cell] [varchar] (50) COLLATE Arabic_CI_AS NULL ,
[customer fax] [varchar] (50) COLLATE Arabic_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[_out_] (
[order No] [bigint] NOT NULL ,
[order Date] [varchar] (10) COLLATE Arabic_CI_AS NOT NULL ,
[customer ID] [int] NOT NULL ,
[part no] [varchar] (100) COLLATE Arabic_CI_AS NOT NULL ,
[part qty] [int] NOT NULL ,
[driver name] [varchar] (50) COLLATE Arabic_CI_AS NULL ,
) ON [PRIMARY]
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/02/01", 1, "LG_TV_32", 100)
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/02/01", 2, "LG_TV_42", 100)
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/02/01", 3, "SAMSUNG_TV_32", 100)
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/03/11", 3, "LG_TV_42", 50)
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/02/01", 2, "LG_TV_42", 100)
GO
INSERT INTO [_IN_]([receipt no], [receipt date], [customer id], [part no], [part qty])
VALUES(1, "90/04/05", 1, "LG_TV_42", 100)
GO
INSERT INTO [_customer_]([customer id],[customer name])
VALUES(1, "Customer A")
GO
INSERT INTO [_customer_]([customer id],[customer name])
VALUES(2, "Customer B")
GO
INSERT INTO [_customer_]([customer id],[customer name])
VALUES(3, "Customer C")
GO
INSERT INTO [_out_]([order No], [order Date], [customer ID], [part no],[part qty], [driver name], [car no])
VALUES(10,"90/05/01",1,"LG_TV_42",5,"DRIVER 1","TEH 3310")
GO
INSERT INTO [_out_]([order No], [order Date], [customer ID], [part no],[part qty], [driver name], [car no])
VALUES(10,"90/05/01",1,"LG_TV_42",5,"DRIVER A","TEH 3310")
GO
INSERT INTO [_out_]([order No], [order Date], [customer ID], [part no],[part qty], [driver name], [car no])
VALUES(10,"90/05/11",2,"LG_TV_32",5,"DRIVER C","SHE 1110")
GO
INSERT INTO [_out_]([order No], [order Date], [customer ID], [part no],[part qty], [driver name], [car no])
VALUES(10,"90/05/13",1,"LG_TV_42",10,"DRIVER A","TEH 3310")
GO
INSERT INTO [_out_]([order No], [order Date], [customer ID], [part no],[part qty], [driver name], [car no])
VALUES(10,"90/06/01",3,"LG_TV_42",50,"DRIVER D","ASF 6598")
GO
حالا اگر من بخوام این کا رو بدون استفاده از حلقه های تو در تو داخل vb انجام بدم راهی هست یانه؟
مثلا بگه مقدار موجودی customer a , customer c , customer b از LG_TV_42 باتوجه به میزان ورود و خروج کالا چقدر است.