小编Sea*_*rey的帖子

SQL 和聚合问题

有了这个查询:

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)

sql-server aggregate t-sql

7
推荐指数
1
解决办法
149
查看次数

MySQL ERROR 1137 (HY000) 在第 9 行:无法重新打开表:'temp_table'

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)

我(差不多)知道不能通过两个不同的别名访问临时表的限制,但是我根本没有给它设置别名。

是否因为它在子查询中而自动别名?如果是这样,如何解决?

谢谢。

mysql-5.1

5
推荐指数
1
解决办法
9221
查看次数

标签 统计

aggregate ×1

mysql-5.1 ×1

sql-server ×1

t-sql ×1