如何在Oracle Sql Query中获得多个到一个关系

时间:2017-07-10 11:50:29

标签: oracle plsql

我在表A中定义了产品代码,其中我将列出3个具有数量的产品。如果客户购买这3件物品,我将免费提供1件产品。

产品代码

  1. 项目A
  2. 项目B
  3. 项目C
  4. 对于这些项目,我将提供"项目D"免费。

    如何编写查询以检查当前表中是否所有3个项目都可用?

1 个答案:

答案 0 :(得分:0)

很遗憾,您没有向我们提供足够的信息以便继续为您提供帮助。从你说的这就是我的想法。你有一个这样的表:

FIGURE 1: TABLE

您需要一个选项来检查当前表中是否所有3个项目都可用:

  

SELECT COUNT(PRODUCT_CODE)= 3时的情况

  'YOU GET FREE ITEM D'
 ELSE

  'YOU DONT GET ANYTHING'

 END AS ANSWER
     

FROM TABLE_A

     

WHERE (PRODUCT_CODE = PRODUCT_CODE_1 AND QUANTITY> 0)

     

OR (PRODUCT_CODE = PRODUCT_CODE_2 AND QUANTITY> 0)

     

OR (PRODUCT_CODE = PRODUCT_CODE_3 AND QUANTITY> 0)

所以基本上where子句检查这3个项是否存在且数量是否大于零。然后我写了一个Case语句(如果你愿意,你可以使用解码)检查计数是否为3然后给我我的免费项目,否则不要给我。