mysql - "WHERE"在 mySQL 语句中不起作用

标签 mysql mysql-workbench

此处的 mySQL 语句尝试按年份打印发票总金额。

> select YEAR(I.INV_DATE), SUM(LINE_UNITS * LINE_PRICE) as total    from
> INVOICE I, LINE L     where I.INV_NUMBER = L.INV_NUMBER   group by 1

但如果我添加类似内容(仅打印当年大于 500 的内容)

> select YEAR(I.INV_DATE), SUM(LINE_UNITS * LINE_PRICE) as total    from
> INVOICE I, LINE L     where I.INV_NUMBER = L.INV_NUMBER   group by 1
>         where total > 500

给我错误消息:语法错误

我做错了什么?谢谢!!

最佳答案

使用HAVING而不是WHERE

SELECT....
FROM ...
GROUP BY ...
HAVING SUM(LINE_UNITS * LINE_PRICE) > 500

或者您可以将其包装在这样的子查询中,

SELECT *
FROM
(
    SELECT  YEAR(I.INV_DATE), SUM(LINE_UNITS * LINE_PRICE) as total
    FROM    INVOICE I, LINE L
    WHERE   I.INV_NUMBER = L.INV_NUMBER   
    GROUP   BY 1
) a
WHERE total > 500

关于mysql - "WHERE"在 mySQL 语句中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21348044/

相关文章:

php - 从数据库获取所有结果,但显示最低价格为 0 价格

php - 如何在 Laravel 5 中将动态字段数据保存到数据库

mysql-workbench - 更改数据库以匹配模型

mysql - 让mysql查询更快

php - mysqli_num_rows()期望参数1为mysqli_result php

php - 像 stackoverflow 这样的网站是如何运作的?

mysql - 如何在 Mysql workbench 中创建零或一对多关系

mysql - 获取消息 查看要应用于数据库的 SQL 脚本

mysql - 将多个唯一键合并为一个

mysql - 导入 Laravel 项目的 Mysql 数据库