MySQL :- Adding where clause to this query

标签 mysql sql

我有 2 个查询,但我不知道在哪里添加 where 子句。

select supplier_id,count(*) c, party_name, SUM(po_value) po_value
from purchase_order join supplier s on s.id=supplier_id
group by supplier_id
having c>1 ORDER BY c DESC LIMIT 5

第二次查询

select warehouse_id, warehouse_name, SUM(available_quantity) available_quantity
from stock join warehouse s on s.id=warehouse_id 
group by warehouse_id 

在这两个查询中,最后我必须根据像 where org_id='152'

这样的 id 来获取数据

最佳答案

将其添加到 GROUP BY 之前:

    SELECT supplier_id,count(*) c, party_name, SUM(po_value) po_value
    FROM purchase_order A JOIN supplier s ON s.id=supplier_id
    GROUP BY supplier_id
    WHERE A.org_id='152'
    HAVING c>1 ORDER BY c DESC LIMIT 5

    SELECT warehouse_id, warehouse_name, SUM(available_quantity) available_quantity
    FROM stock G JOIN warehouse s ON s.id=warehouse_id 
    WHERE G.org_id='152'
    GROUP BY warehouse_id 

此外,从可读性的角度来看,我建议使用大写字母来标记标准 SQL 术语:)

本页的第一个示例也很好地回答了您提出的问题:

http://www.w3schools.com/sql/sql_groupby.asp

编辑:更新以消除 where 子句的歧义。

关于MySQL :- Adding where clause to this query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38898359/

相关文章:

mysql - 将 TEXT 转换为 INT 字段 (submit_date)

sql - 创建一个没有列的空白表

mysql - Redshift 中的 REGEXP_REPLACE

mysql - 如何修复 "ERROR 130 (HY000): Incorrect file format"

mysql - 显示SQL中最大第三个值对应的日期和id

mysql - 为表 SQL 的每个成员选择不同的记录

MYSQL:选择字段值的总和同时还选择唯一值?

mysql - 检查mysql字段数据中的某个字符,并用另一个字符替换它

php - 从最大数量的项目中将数组存储在 Mysql 数据库中

mysql - 将两个select的计数与子查询相除得到一个百分比