目前真的很困难的问题,因为这是我试图在 SQL 中做的事情,但我知道应该用另一种语言(如 PHP)来完成。
基本上我拥有的是一个数据库,其中包含订单号和与政策相关的产品代码。
对于某些订单,有多个阶段,例如取消和升级(例如,当进行升级时,原保单被取消,然后为差价进行升级)
我想要做的是运行一个查询,该查询将排除与升级订单相关的所有取消(在产品代码中指定为 UP),但保留与细节更改相关的所有取消(在产品代码中指定为 CD)。
简而言之;该查询将需要查找所有订单,包括取消订单,然后删除与 UP 具有相同订单号的任何取消订单。
我知道这基本上可以通过查找所有 UP 产品代码和相关订单号的“foreach”来完成,然后删除与该订单号相关的所有取消 - 但我不知道如何在 SQL 中实现这一点临时创建多个表并在之后删除它们。
表结构是这样的:
| Order Number | Product Code | Transaction Value |
| 1 | RRCN | -30 |
| 1 | RRUP | 12 |
| 2 | SMFP | 30 |
| 3 | SMCN | -12 |
| 3 | SMCD | 12 |
| 4 | HUCN | -30 |
所以我需要查询来显示所有表,但删除与 RRUP 相关的 RRCN。所以查询应该寻找 RRUP,看到它是订单 1,然后找到与订单 1 相关的 RRCN 并将其从结果中删除 - 请注意,结果不是原始表。
有任何想法吗?非常感激!(我正在运行 SQL Server 2008)