sql server—根据父级状态对项进行分类的sql

xwbd5t1u  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(179)

找到ddl,dml,示例数据,我在fiddle中尝试的实际输出。
我有一张table Categories . 我提供下面的图片,因为小提琴包含文本格式的数据。如果你想用文本数据替换下面的图片,请告诉我

还有一张table CategoryRelation
现在我正在尝试在中添加另一列 Categories 打电话 Decision 预期输出如下所示。
预期产量

+------------+------------------+----------+---------------+
| CategoryID | Name             | Status   | Decision      |
+------------+------------------+----------+---------------+
| 1          | Electronics      | Active   | IN-USE        |
| 2          | Furnitures       | InActive | NOT-IN-USE    |
| 3          | Men's Clothing   | Active   | IN-USE        |
| 4          | Women's Clothing | InActive | NOT-IN-USE    |
| 5          | Jeans Pent       | Active   | IN-USE        |
| 6          | T-Shirts         | Active   | IN-USE        |
| 7          | Sarees           | Active   | NOT-IN-USE    |
| 8          | Shirts           | InActive | IN-USE        |
| 9          | Mobiles          | Active   | IN-USE        |
| 10         | TVs              | Active   | IN-USE        |
| 11         | Smartphone       | Active   | IN-USE        |
| 12         | Tables           | InActive | NOT-IN-USE    |
| 13         | Chairs           | InActive | NOT-IN-USE    |
| 14         | Stationaries     | InActive | TO_BE_DECIDED |
+------------+------------------+----------+---------------+

逻辑:
把所有的分类 Active 状态和放置 IN-USE 所有的孩子,不管他们现在的状况如何
把所有的分类 InActive 状态和放置 NOT-IN-USE 只有当所有的孩子都在 InActive 父项。如果它的任何子项对应于一个或多个活动项,则该子项应为 Active . 例如,我的样本数据中的衬衫。
如果任何一个类别没有任何子级,那么它应该是 TO_BE_DECIDED 不管它的现状如何。例如 Stationaries 我几乎做到了,但我不知道这是不是正确的方式。我也有一些问题 Sarees 哪个应该是 NOT-IN-USE 但它正朝着另一个方向发展。也不知道怎么查没有孩子( Stationaries ). 有人能帮忙吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题