mysql - 如何与其他列的条件相加

标签 mysql sql

我试图像这样在其他表上按 po 编号获取 deliveryqty 的总和

SELECT
  po.PONumber,
  po.PODate,
  po.customername,
  po.Description,
  SUM(spb.DeliveryQty)
FROM
  tb_po AS po
LEFT OUTER JOIN
  tb_spb AS spb ON po.PONumber = spb.PONumber
GROUP BY
  po.PONumber,
  po.Description

mysql是这样显示数据的

PONUMBER   podate      customername    description          deliveryqty
4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB 1500 ML      810
4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB 600 ML       810
4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB GALON 19 LT  810
4600293487 04/04/2016 Balikpapan-CLUB AMDK CLUB GALON 19 LT  800
4600293489 04/04/2016 Balikpapan-CLUB AMDK CLUB 240 ML      1200
4600293489 04/04/2016 Balikpapan-CLUB AMDK CLUB 330 ML      1200

我尝试的是根据采购订单号和 Material 描述汇总数据,而不是像这样仅根据采购订单号汇总所有数量:

PONUMBER   podate      customername    description          deliveryqty
    4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB 1500 ML      250
    4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB 600 ML       440
    4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB GALON 19 LT  120
    4600293487 04/04/2016 Balikpapan-CLUB AMDK CLUB GALON 19 LT  800
    4600293489 04/04/2016 Balikpapan-CLUB AMDK CLUB 240 ML      1200
    4600293489 04/04/2016 Balikpapan-CLUB AMDK CLUB 330 ML         0

这是我用过的 table

tb_po

PONUMBER   podate      customername    description          
4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB 1500 ML      
4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB 600 ML       
4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB GALON 19 LT
4600293487 04/04/2016 Balikpapan-CLUB AMDK CLUB GALON 19 LT 
4600293489 04/04/2016 Balikpapan-CLUB AMDK CLUB 240 ML    
4600293489 04/04/2016 Balikpapan-CLUB AMDK CLUB 330 ML      

tb_spb

  PONUMBER    podate     customername    description          deliveryqty
    4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB 1500 ML      125
    4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB 1500 ML      125
    4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB 600 ML       440
    4600293473 04/04/2016 Balikpapan-CLUB AMDK CLUB GALON 19 LT  120
    4600293487 04/04/2016 Balikpapan-CLUB AMDK CLUB GALON 19 LT  400
    4600293487 04/04/2016 Balikpapan-CLUB AMDK CLUB GALON 19 LT  400
    4600293489 04/04/2016 Balikpapan-CLUB AMDK CLUB 240 ML      1200
    4600293489 04/04/2016 Balikpapan-CLUB AMDK CLUB 240 ML      1200
    4600293489 04/04/2016 Balikpapan-CLUB AMDK CLUB 240 ML      1200
    4600293489 04/04/2016 Balikpapan-CLUB AMDK CLUB 330 ML         0

最佳答案

使用下面的查询:-

 CREATE TEMPORARY TABLE t1 (PONumber decimal(18, 2) NOT NULL,POdate date NOT NULL,customername varchar(200) NOT NULL,description varchar(200) NOT NULL);
 INSERT INTO t1(PONumber,POdate,customername,description) 
 select distinct PONumber,POdate,customername,description 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;

drop table t1;

它将为您提供所需的输出。

关于mysql - 如何与其他列的条件相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37293592/

相关文章:

mysql - quartile 和 StDev 在 SQL 中怎么写?

php - 按添加年份对所有每月收入组进行排序

mysql - SQL - 我怎样才能在同一个团队中获得多个管理员

php - 选择(过滤)匹配一天、开始和结束过滤列表的记录

c++ - 在 QSqlQuery::addBindValue() 中为 LIKE 转义 %(百分比)

mysql - 如何使用SQL查找unfollow页面?

mysql - 使用Where子句组合两个SQL选择查询

java - 轻松生成休息服务的解决方案?

mysql - Rails 2.2 中的脚手架?

java - 从php mysql循环加载图像时对话框不断出现