Mysql 试图将查询放入phpMyAdmin中的另一个查询中
我试图使用一个查询作为另一个查询的数据源,但我一直从SELECT中得到一个解析错误。我对SQL和phpmyadmin相当陌生,不知道为什么会发生此错误。以下是我的问题,我正试图做到:Mysql 试图将查询放入phpMyAdmin中的另一个查询中,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
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\u NUMBER
,但LINE
表在此上下文中不可用。您需要的是子查询的INV\u编号
李>
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;
外部查询只能访问由子查询创建的派生表公开的字段。它没有访问数据库实际表的权限,比如说,
LINE
。除此之外,您还必须为派生表提供别名。@giorgosbetos以前如何为该表提供别名?我试图找到它,但找不到如何给它一个别名。。。。按CUS_代码、LINE.INV_NUMBER)分组为t…
@GiorgosBetsos,因此我必须使用AS进行内部查询?它似乎仍然不起作用。SELECT仍有错误,但t1别名也有错误。请共享错误?我相信这里的语法是正确的,因此是特定于您的数据导致了问题,确切的错误消息将有助于排除故障。“先前解析的”警告消息来自phpmyadmin,另一个错误可能是来自mysql的错误,它更相关。它说在“t1”OK下找到了以前的别名。我只能假设它是子查询中库存编号的多余字段别名。我已经把它去掉了。