我尝试使用一个查询作为另一个查询的数据源,但我不断收到来自 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;
这里有几个问题:
- 在外部查询中,您引用了
LINE.INV_NUMBER
,但LINE
表在此上下文中不可用。这是您想要的子查询的INV_NUMBER
。 - 您的子查询缺少别名,因此您无法在外部查询中引用它。如果没有别名,这只会引发错误。
已修复:
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/