2016-09-14 32 views
0

我不能找到合適的查詢,使從2代表的另外兩列插入和數據保存到其中的一個如何使從2個表A添加並插入值,以其中的一個

這裏是我的makeorderaction

private void Make_OrderActionPerformed(java.awt.event.ActionEvent evt) {           
    String query="INSERT INTO Orders(Pro_Id ,Pro_Name,Order_Quantity,Order_Date)VALUES ('"+Pro_Id.getText()+" ','"+Pro_Name.getText()+" ','"+Order_Quantity.getText()+" ','"+Order_Date.getText()+" ') "; 
    executeSQLQuery(query,"Inserted"); 
    String qquery ="UPDATE Products SET Pro_Quantity where Prod_Id = Pro_Quantity+Order_Quantity "; 
    // executeSQLQuery(query,"quantity updated"); 
    } 

我需要找到一個sqlquery的,讓另外從表順序列Order_Quantity用表的產品列Pro_Quantity。並且在表格產品中更新Pro_Quantity列中的新值,這取決於每次產品的標識符有何意義?泰

表訂單

CREATE TABLE [dbo].[Orders](
    [Order_Id] [int] IDENTITY(1,1) NOT NULL, 
    [Order_Date] [int] NULL, 
    [Order_Quantity] [int] NULL, 
    [Pro_Id] [int] NULL, 
    [Pro_Name] [varchar](50) NULL, 
CONSTRAINT [PK__Orders__F1E4607B714E3A74] PRIMARY KEY CLUSTERED 
(
    [Order_Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 

SET ANSI_PADDING OFF 
GO 

ALTER TABLE [dbo].[Orders] WITH CHECK ADD CONSTRAINT [FK_Orders_Products] FOREIGN KEY([Pro_Id]) 
REFERENCES [dbo].[Products] ([Pro_Id]) 
GO 

ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Products] 
GO 

表產品

CREATE TABLE [dbo].[Products](
    [Pro_Id] [int] NOT NULL, 
    [Pro_Name] [varchar](50) NOT NULL, 
    [Pro_Price] [float] NULL, 
    [Pro_Quantity] [int] NULL, 
    [Pro_Supplier_id] [int] NOT NULL, 
    [Pro_Tax] [float] NOT NULL, 
    [Cat_products] [varchar](50) NULL, 
CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED 
(
    [Pro_Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 

SET ANSI_PADDING OFF 
GO 

我添加此qquery但我覺得他需要一些改變

String qquery= " UPDATE Products SET Pro_Quantity= Pro_Quantity + '"+Order_Quantity.getText()+"' FROM Products INNER JOIN Orders ON Products.Pro_Id="+Orders.getText() ; 

回答

1

我改變了上面的代碼,所以他只更新最後一個訂單。

String query= " UPDATE Products SET Pro_Quantity= Products.Pro_Quantity + Orders.Order_Quantity FROM Products INNER JOIN Orders ON Products.Pro_Id= Orders.Pro_Id where Order_Id = (SELECT MAX(Order_Id) FROM Orders)" ; 
     executeSQLQuery(query,"updated"); 
1

有些人認爲這樣的 How do I UPDATE from a SELECT in SQL Server?

UPDATE P 
SET 
    P.Pro_Quantity= P.Pro_Quantity + O.Order_Quantity  
FROM 
    Products as P 
    INNER JOIN Orders as O 
     ON P.Pro_Id= O.Pro_Id 
+0

所以在我的查詢應該是這樣的東西? String qquery =「UPDATE Products SET Pro_Quantity = Products.Pro_Quantity + Orders.Orders FROM Products INNER JOIN Orders ON Products.Pro_Id = Orders.Pro_Id」; –

+0

是的嘗試,我不確定這是沒有別名的工作。 –

+0

什麼都沒有......東西沒有工作... –

相關問題