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.
| Author |
Topic |
|
AskSQLTeam
Ask SQLTeam Question
0 Posts |
Posted - 2005-11-09 : 07:07:09
|
| Cesar writes "Please, take a look below (SET based option) ... the SUM for each UPDATE is wrong ...Thanks.Cesar-- *** CURSOR based ***Declare CSR_ORDDETAIL Cursor Fast_Forward For Select ORDDETAIL.ID_PRODUCT, ORDDETAIL.QTY_PRODUCT From ORDDETAIL Inner Join PRODUCT On ORDDETAIL.ID_PRODUCT = PRODUCT.ID_PRODUCT Where ORDDETAIL.FLAG_STATUS = 'OK' And PRODUCT.FLAG_STATUS = 1Open CSR_ORDDETAILFetch Next From CSR_ORDDETAIL Into @PRODUCT, @QTYBegin Transaction While @@Fetch_Status = 0 Begin Update STOCK Set STOCK.QTY_PRODUCT = (STOCK.QTY_PRODUCT + @QTY) Where STOCK.ID_PRODUCT = @PRODUCT If @@ERROR <> 0 Begin Close CSR_ORDDETAIL Deallocate CSR_ORDDETAIL Rollback Transaction Return End Fetch Next From CSR_ORDDETAIL Into @PRODUCT, @QTY EndCommit TransactionClose CSR_ORDDETAILDeallocate CSR_ORDDETAIL-- *** SET based ***Begin TransactionUpdate STOCKSet STOCK.QTY_PRODUCT = (Select SUM(ORDDETAIL.QTY_PRODUCT) From ORDDETAIL Inner Join PRODUCT On ORDDETAIL.ID_PRODUCT = PRODUCT.ID_PRODUCT Where ORDDETAIL.FLAG_STATUS = 'OK' And PRODUCT.FLAG_STATUS = 1)From ORDDETAIL Inner Join PRODUCT On ORDDETAIL.ID_PRODUCT = PRODUCT.ID_PRODUCT Inner Join STOCK On PRODUCT.ID_PRODUCT = STOCK.ID_PRODUCTCommit Transaction" |
|
|
bridge
Yak Posting Veteran
93 Posts |
Posted - 2005-11-10 : 08:24:13
|
| Try this queryBegin TransactionUpdate sSet s.QTY_PRODUCT = (Select SUM(ORDDETAIL.QTY_PRODUCT)From ORDDETAIL Inner Join PRODUCT On ORDDETAIL.ID_PRODUCT = PRODUCT.ID_PRODUCT andPRODUCT.ID_PRODUCT = s.ID_PRODUCTWhere ORDDETAIL.FLAG_STATUS = 'OK' And PRODUCT.FLAG_STATUS = 1)From STOCK sCommit TransactionIt would be better if you could give table structures with some sample data. |
 |
|
|
bridge
Yak Posting Veteran
93 Posts |
Posted - 2005-11-10 : 08:25:52
|
| sorry use it in the WHEREandPRODUCT.ID_PRODUCT = s.ID_PRODUCT |
 |
|
|
|
|
|