微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用多个 AND 创建 SQL 语句

如何解决使用多个 AND 创建 SQL 语句

我在创建正确的 sql 请求时遇到问题。 这是我的桌子:

item    warehouse   amount
item1   A   1
item1   B   5
item2   A   9
item2   B   2
item3   A   1
item3   A   0
item4   B   1

我想显示所有符合以下条件的项目:

  1. -在仓库 A 中的数量少于 2
  2. -在水库 B 中的数量大于 0 同时。

我希望 item1 会被显示

到目前为止我的代码是:

SELECT item,warehouse,amount

FROM XXXX

WHERE 
(warehouse  = B AND amount>0)
AND 
(warehouse  = A AND amount<2)

我知道仓库 = B AND 仓库 = A 永远不会发生,但我不知道从哪里开始。

我是 sql 新手,但我觉得我需要使用 GRUPBY

有什么帮助吗?

解决方法

您可以使用聚合。使用 where 获得 任一 条件。然后检查两者是否满足。假设每个仓库每个项目有一行,您可以使用:

SELECT item
FROM XXXX
WHERE (warehouse = 'B' AND amount > 0) OR
      (warehouse = 'A' AND amount < 2)
GROUP BY item
HAVING COUNT(*) = 2;

请注意,这不会返回金额。如果您也想要这样,请使用条件聚合来透视数据:

SELECT item,SUM(CASE WHEN warehouse = 'B' THEN amount END) as b_amount,SUM(CASE WHEN warehouse = 'A' THEN amount END) as a_amount
FROM XXXX
WHERE (warehouse = 'B' AND amount > 0) OR
      (warehouse = 'A' AND amount < 2)
GROUP BY item
HAVING COUNT(*) = 2;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。