Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 insert values and derived

Author  Topic 

Tonofit
Starting Member

4 Posts

Posted - 2013-12-18 : 12:54:59
How should this be done in order to insert PurchorderNum, QtyFilled function results from one table into another table along with values passed to the stored proccedure?


ALTER proc [dbo].[spCreateContainerFill]
(@containerID as nvarchar(64),
@lotNum as bigint,
@customerID as int = 1164,
@fillDateTime as datetime
)
as
BEGIN
declare @checkcontainerID bigint

set nocount on

SELECT @checkcontainerID = containerID FROM ContainerFillHistory
WHERE containerID = @containerID

BEGIN
SELECT min(cs.purchorderNum) as PurchorderNum, cs.productID, (cs.purchOrderQty / p.weight) AS QtyOrder, (cs.qtyFilled / p.weight) AS QtyFilled, isActive, p.weight
FROM CustomerServicePO cs
INNER JOIN products p on cs.productID = p.productID
INNER JOIN ContainerFillHistory cf on cs.customerID = cf.customerID
WHERE SUBSTRING(@containerID, 1, 6) = cs.productID AND isActive = 1
GROUP BY cs.purchorderNum, cs.customerID, cs.productID, cs.qtyFilled, cs.purchOrderQty, isActive, p.weight

INSERT INTO ContainerFillHistory(containerID, lotID, productID, customerID, fillDateTime, purchorderNum, qtyFilled)
VALUES (@containerID, @lotNum, SUBSTRING(@containerID, 1, 6), @customerID, @fillDateTime)

UPDATE cs
SET isActive =
( CASE
WHEN (QtyOrder < QtyFilled) THEN 0
END
), QtyFilled = QtyFilled +1, cs.qtyFilled = QtyFilled * p.weight
WHERE min(cs.purchorderNum) = PurchorderNum
END
END

Tonofit
Starting Member

4 Posts

Posted - 2013-12-18 : 17:12:00
Some resquencing and tweeks and it Executed


ALTER proc [dbo].[spCreateContainerFill]
(@containerID as nvarchar(64),
@lotNum as bigint,
@customerID as int = 1164,
@fillDateTime as datetime


)
as
BEGIN
declare @checkcontainerID bigint
declare @QtyOrder int

set nocount on

BEGIN
INSERT ContainerFillHistory(containerID, lotID, customerID, productID, fillDateTime, PurchorderNum, qtyFilled)
SELECT @containerID, @lotNum, @CustomerID, SUBSTRING(@containerID, 1, 6), @fillDateTime, min(cs.purchorderNum) as PurchorderNum, (cs.qtyFilled / p.weight) AS QtyFilled
FROM CustomerServicePO cs
INNER JOIN products p on cs.productID = p.productID
INNER JOIN ContainerFillHistory cf on cs.customerID = cf.customerID
WHERE SUBSTRING(@containerID, 1, 6) = cs.productID AND isActive = 1 AND cs.CustomerID = @CustomerID
GROUP BY cs.purchorderNum, cs.customerID, cs.productID, cs.qtyFilled, cs.purchOrderQty, isActive, p.weight

UPDATE cs
SET isActive =
( CASE
WHEN (cs.purchOrderQty < QtyFilled) THEN 0

END
), QtyFilled = QtyFilled +1, cs.qtyFilled = QtyFilled * p.weight
WHERE min(cs.purchorderNum) = PurchorderNum
END
END
Go to Top of Page
   

- Advertisement -