MySQL table 合并后得到错误的数据

MySQL table get the wrong data after union

我尝试使用 union for 3 table 创建视图,每个 table 都成功地处理了正确的数据。在我尝试 union 之后,totalqtyspb 上的数据得到了错误的数据。

数据类型为 varchar。

这是我的代码

SELECT
  p.PONumber,
  p.POdate,
  p.customername,
  p.description,
  p.poqty,
  SUM(q.deliveryqty) AS TotalQtySpb,
  p.poqty-SUM(q.deliveryqty) AS OTSPO
FROM
  tb_po p
INNER JOIN
  tb_rls q ON p.PONumber = q.PONumber AND p.description = q.description
GROUP BY
  p.PONumber,
  p.PODate,
  p.customername,
  p.description,
  p.poqty
UNION
SELECT
  PONumber,
  PODate,
  CustomerName,
  Description,
  POQty,
  '0' AS TotalQtySpb,
  poqty AS OTSPO
FROM
  tb_po
WHERE
  poreleasedate = ''
UNION
SELECT
  PONumber,
  PODate,
  CustomerName,
  Description,
  POQty,
  '0' AS TotalQtySpb,
  poqty AS OTSPO
FROM
  tb_po
WHERE
  poreleasedate != '' AND OutboundInbound = ''

我无法解释为什么 totalqtyspb 上的数据得到了错误的数据,已经尝试更改为 int 数据类型仍然无效。

我怀疑是因为您选择 TotalQtySpb 一次作为 integer,两次选择 varchar,所以请尝试在第三个和第二个查询中替换为:

  '0' AS TotalQtySpb,

为此:

  0 AS TotalQtySpb,

虽然你没说哪里不对,所以只是猜测。