有了这个查询:
SELECT SUM(qty) AS sumQty,
cnetprodid
FROM quoteitem
WHERE ordered = 1
AND sageSOPOrderReturnLineID IS NOT NULL
AND LEN(LTRIM(RTRIM(cnetprodid))) > 0
AND cnetprodid LIKE 'S%'
AND price > 10
AND created > DATEADD(MONTH, -3, GETDATE())
GROUP BY cnetprodid
ORDER BY SUM(qty) DESC
Run Code Online (Sandbox Code Playgroud)
每个产品我得到一排,顶排有 294 个 assumQty
和 'S10381902' 作为cnetprodid
输入此查询:
SELECT SUM(qty) AS sumQty,
p.ProdID,
p.CatID
FROM quoteitem
INNER JOIN cds_prod AS p
ON p.ProdID COLLATE Latin1_General_CI_AS = cnetprodid
INNER JOIN cds_atr AS a
ON a.ProdID COLLATE Latin1_General_CI_AS …
Run Code Online (Sandbox Code Playgroud) 我ERROR 1137 (HY000) at line 9: Can't reopen table: 'temp_table'
在执行类似于以下内容的查询时收到错误消息:
USE database_name;
CREATE TEMPORARY TABLE temp_table (status varchar(20));
INSERT INTO temp_table (status)
SELECT status
FROM client_contractor_status
WHERE type = 'process';
SELECT table1.col1,
table1.status,
(SELECT
COUNT(*)
FROM
table2
RIGHT OUTER JOIN
temp_table
ON table2.status = temp_table.status
WHERE table2.col1 = table1.col1
) AS counter
FROM
table1
RIGHT OUTER JOIN
temp_table
ON table1.status = temp_table.status
Run Code Online (Sandbox Code Playgroud)
我(差不多)知道不能通过两个不同的别名访问临时表的限制,但是我根本没有给它设置别名。
是否因为它在子查询中而自动别名?如果是这样,如何解决?
谢谢。