我试图在临时表中创建不同的数据,试图用create table简化它,tabletemp仍然出错,它说在distinct附近无法识别数据类型,在ponumber附近需要逗号或右括号
代码如下:

CREATE TEMPORARY TABLE t1(
SELECT DISTINCT
  PONumber varchar(10),
  POdate varchar(10),
  customername varchar(35),
  description varchar(22)
  FROM tb_po
);

SELECT
  p.PONumber,
  p.podate,
  p.customername,
  p.description,
  (
    SELECT SUM(q.deliveryqty)
    FROM tb_spb q
    WHERE p.PONumber = q.PONumber AND p.description = q.description
  ) AS Total
  FROM t1 p

最佳答案

不需要创建临时表就可以得到所需的结果。以下是我根据您的查询修改后的查询:

SELECT DISTINCT
  p.PONumber,
  p.POdate,
  p.customername,
  p.[description],
  SUM(q.deliveryqty)
FROM tb_po p
    INNER JOIN tb_spb q
        ON p.PONumber = q.PONumber
        AND p.description = q.description
GROUP BY p.PONumber,p.POdate,p.customername,p.[description]

关于mysql - 在临时表中选择不重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37314302/

10-11 11:29