我从不同的文章中获得了很多帮助,对此我非常感谢。 但是,现在我有一个情况是我需要您的支持,即与一个SQL过程有关,该SQL过程不仅要检查数据是否存在(用于更新或插入数据,还要与其他2个表进行匹配以检查数据是否匹配)然后在单独的表格中为某些列插入具有不同值的同一行。
我希望更加明确,因此下面的示例希望对您有所帮助
主行数据: db.Table1
|rowID|PurchaseDate|ProducID | ProductName | CustomerID | Qty | UnitType| |row1 |09.09.2018 |206 | Prod1 | 1 | 10 | bl. | |row2 |09.09.2018 |207 | Prod2 | 2 | 15 | bl. | |row3 |12.09.2018 |203 | Prod5 | 5 | 5 | lk. | |row4 |15.09.2018 |207 | Prod2 | 6 | 10 | lk. | |row5 |20.09.2018 |207 | Prod2 | 8 | 3 | Pk. | |row6 |20.09.2018 |203 | Prod5 | 8 | 6 | Pk. | |row7 |20.09.2018 |205 | Prod0 | 2 | 5 | J. |
与以下项匹配: db.Table2
|CustomerID| CustomerName| |1 | Customer1 | |2 | Customer2 | |3 | Customer3 | |4 | Customer4 | |5 | Customer5 |
与以下项匹配: db.Table3
|ProducID| ProductName| SubProdNAME| | |205 | Prod0 | Prod101 | |205 | Prod0 | Prod202 | |204 | Prod01 | Prod1001 | |204 | Prod01 | Prod2002 |
进入决赛桌: db.TableFIN
|rowID| PurchaseDate|ProducID|ProductName|CustomerID|Qty|UnitType |Stage| |row1 | 09.09.2018 | 206 | Prod1 | 1 |10 | bl. | DONE| |row1 | 09.09.2018 | 206 | Prod1 | 1 |10 | bl. | NONE| |row2 | 09.09.2018 | 207 | Prod2 | 2 |15 | bl. | DONE| |row2 | 09.09.2018 | 207 | Prod2 | 2 |15 | bl. | NONE| |row3 | 12.09.2018 | 203 | Prod5 | 5 |5 | lk. | DONE| |row3 | 12.09.2018 | 203 | Prod5 | 5 |5 | lk. | NONE| |row4 | 15.09.2018 | 207 | Prod2 | 6 |10 | lk. | DONE| |row4 | 15.09.2018 | 207 | Prod2 | 6 |0 | lk. | NONE| |row5 | 20.09.2018 | 207 | Prod2 | 8 |3 | Pk. | DONE| |row5 | 20.09.2018 | 207 | Prod2 | 8 |0 | Pk. | NONE| |row6 | 20.09.2018 | 203 | Prod5 | 8 |6 | Pk. | DONE| |row6 | 20.09.2018 | 203 | Prod5 | 8 |0 | Pk. | NONE| |row7 | 20.09.2018 | 205 | Prod101 | 3 |5 | bundle| DONE| |row7 | 20.09.2018 | 205 | Prod101 | 3 |5 | bundle| NONE| |row7 | 20.09.2018 | 205 | Prod202 | 3 |5 | bundle| DONE| |row7 | 20.09.2018 | 205 | Prod202 | 3 |5 | bundle| NONE|
所以,基本上我需要根据 Stage 逐行插入数据,第一阶段为 DONE ,第二行为 NONE -另外,如果ConsumerID匹配,则数量值在两种情况下均相等,否则,对于 NONE 值= 0和 DONE 原始值。 FOR ProducID (如果产品与产品匹配),那么我们必须插入4行。如上表所示。再次匹配消费者ID和产品更新/插入阶段/值。
非常感谢您的支持。 预先谢谢你!