当没有结果返回时,应用ignore where子句

时间:2015-05-01 00:22:39

标签: sql sql-server-2012

我们有一个SQL Select查询,它执行以下操作:

SELECT    TOP 10
          Product.ProductItemID ,
          Product.ProductCode ,
          Product.ProductName ,
          Product.ProductGroupItemID,
          ...Other Columns...
FROM      Product
          ...Other Joins...
LEFT JOIN Stock
     ON   Stock.ProductItemID = Product.ProductItemID
WHERE     ProductGroupItemID = 12345
      AND ProductCode like 'ABC%'
      ...Other Criteria...

该公司要求提供以下信息:

  1. 如果发送的条件存在库存,则仅显示有库存的产品
  2. 如果没有记录有发送标准的库存,则显示符合条件的任何产品

    我们可以通过在HAVING SUM (Stock.BaseQuantity) > 0group by中选择所有列来轻松满足第一个标准。

  3. 问题是我们只想申请满足标准的任何产品都有库存。如果所有产品都没有库存,那么我们不想应用它。

    我们如何将having子句更改为仅在返回结果时应用?

0 个答案:

没有答案