mysql - 尝试将一个查询放入 phpMyAdmin 中的另一个查询中

标签 mysql phpmyadmin

我尝试使用一个查询作为另一个查询的数据源,但我不断收到来自 SELECT 的解析错误。我对 SQL 和 phpmyadmin 相当陌生,不确定为什么会发生此错误。这是我想要做的查询:

SELECT  CUS_CODE, 
 COUNT(LINE.INV_NUMBER) AS "Number of Invoices", 
 AVG("Invoice Total") AS "Average Invoice Amount", 
 MAX("Invoice Total") AS "Max Invoice Amount", 
 MIN("Invoice Total") AS "Min Invoice Amount", 
 Sum("Invoice Total") AS "Total Customer Purchases"
FROM    (SELECT CUS_CODE, LINE.INV_NUMBER AS INV_NUMBER,
        Sum(LINE.LINE_UNITS*LINE.LINE_PRICE) AS "Invoice Total"
        FROM    INVOICE, LINE 
        WHERE   INVOICE.INV_NUMBER = LINE.INV_NUMBER
        GROUP BY    CUS_CODE, LINE.INV_NUMBER)
GROUP BY    CUS_CODE;

抱歉,如果我的问题不清楚,但我可以回答任何问题以帮助澄清。

最佳答案

您的查询:

SELECT CUS_CODE,
    COUNT(LINE.INV_NUMBER) AS "Number of Invoices",
    AVG("Invoice Total") AS "Average Invoice Amount",
    MAX("Invoice Total") AS "Max Invoice Amount",
    MIN("Invoice Total") AS "Min Invoice Amount",
    Sum("Invoice Total") AS "Total Customer Purchases"
FROM (
    SELECT CUS_CODE,
        LINE.INV_NUMBER,
        Sum(LINE.LINE_UNITS * LINE.LINE_PRICE) AS "Invoice Total"
    FROM INVOICE,
        LINE
    WHERE INVOICE.INV_NUMBER = LINE.INV_NUMBER
    GROUP BY CUS_CODE, INV_NUMBER
    )
GROUP BY CUS_CODE;

这里有几个问题:

  1. 在外部查询中,您引用了 LINE.INV_NUMBER,但 LINE 表在此上下文中不可用。这是您想要的子查询的 INV_NUMBER
  2. 您的子查询缺少别名,因此您无法在外部查询中引用它。如果没有别名,这只会引发错误。

已修复:

SELECT t1.CUS_CODE,
    COUNT(t1.INV_NUMBER) AS "Number of Invoices",
    AVG(t1."Invoice Total") AS "Average Invoice Amount",
    MAX(t1."Invoice Total") AS "Max Invoice Amount",
    MIN(t1."Invoice Total") AS "Min Invoice Amount",
    Sum(t1."Invoice Total") AS "Total Customer Purchases"
FROM (
    SELECT CUS_CODE,
        LINE.INV_NUMBER AS INV_NUMBER,
        Sum(LINE.LINE_UNITS * LINE.LINE_PRICE) AS "Invoice Total"
    FROM INVOICE,
        LINE
    WHERE INVOICE.INV_NUMBER = LINE.INV_NUMBER
    GROUP BY CUS_CODE,
        LINE.INV_NUMBER
    ) as t1
GROUP BY CUS_CODE;

关于mysql - 尝试将一个查询放入 phpMyAdmin 中的另一个查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43048162/

相关文章:

php - 为什么没有从我的 MYSQL 数据库中提取 "message"字段?

mysql - 如何使用perl将文本插入带有引号的mysql

mysql - 将 MySQL 数据传递到 HTML 选择列表

java - MySQL以库尔德字体存储数据?

php - 删除语句显示删除成功,但不删除记录

javascript - jqGrid 查询中的子句

mysql - 连接 Sequelize 到 MySQL 生成访问被拒绝错误

PHP/MYSQL utf8 文件打开语法错误,但通过 phpmyadmin 工作正常

phpmyadmin中mysql版本不同

sql - 在同一列上有 FK 和 PK?基数/SQL