Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL sum语句工作异常_Mysql - Fatal编程技术网

Mysql SQL sum语句工作异常

Mysql SQL sum语句工作异常,mysql,Mysql,我试图在mysql中使用sum语句,但运气不好。下面是我的查询,我只想在销售订单号字段和物料匹配时,将生产订单中的数量字段相加,下面的查询只返回一行,将迄今为止发出的所有生产订单数量相加。我确实有大约2000份销售订单和3500份与销售订单相关的生产订单 任何帮助都能拯救生命 select `tabSales Order`.`name` as "Sales Order:Link/Sales Order:120", `tabSales Order`.`customer` as "Custome

我试图在mysql中使用sum语句,但运气不好。下面是我的查询,我只想在销售订单号字段和物料匹配时,将生产订单中的数量字段相加,下面的查询只返回一行,将迄今为止发出的所有生产订单数量相加。我确实有大约2000份销售订单和3500份与销售订单相关的生产订单

任何帮助都能拯救生命

select 
 `tabSales Order`.`name` as "Sales Order:Link/Sales Order:120",
`tabSales Order`.`customer` as "Customer:Link/Customer:120",
 `tabSales Order Item`.item_code as "Item:Link/Item:120",
`tabSales Order Item`.item_name as "Des:Link/Item:120",
`tabSales Order Item`.qty as "Qty:Float:100",
 `tabSales Order Item`.delivered_qty as "Delivered Qty:Float:100",
 (`tabSales Order Item`.qty - ifnull(`tabSales Order Item`.delivered_qty, 0)) as "Qty to Deliver:Float:140",
`tabSales Order Item`.date as "Sch date:Date:100",
`tabItem`.thumbnail as "Cut wt:Data:60",
`tabProduct master`.grade as "Grade:Data:100",
`tabProduct master`.dieno as "Die no:Data:100",
`tabProduct master`.hammer as "Hammer:Data:50",
`tabProduct master`.rm_idl_cs as "Idl sec:Data:60",
`tabProduct master`.rm_alt_cs as "Alt sec:Data:60",
SUM(CASE WHEN `tabSales Order`.`name` = `tabProduction Order`.`sales_order` and `tabSales Order Item`.`item_code` = `tabProduction Order`.`production_item`
         THEN `tabProduction Order`.`qty`
    END) as "Issued:Int:80"

from
 `tabSales Order` 
LEFT JOIN `tabSales Order Item` ON ( `tabSales Order Item`.`parent` = `tabSales Order`.`name`
 and `tabSales Order`.docstatus = 1 and `tabSales Order`.status not in ("Stopped", "Closed") and ifnull(`tabSales Order Item`.delivered_qty,0) < ifnull(`tabSales Order Item`.qty,0))
LEFT JOIN `tabItem` ON `tabItem`.`item_code` = `tabSales Order Item`.`item_code`
LEFT JOIN `tabProduct master` ON `tabProduct master`.`part_no` = `tabSales Order Item`.`item_code`
LEFT JOIN `tabProduction Order` ON (`tabSales Order Item`.`item_code` = `tabProduction Order`.`production_item` and `tabSales Order`.`name` = `tabProduction Order`.`sales_order`)
选择
`tabSales Order`.`name`为“Sales Order:Link/Sales Order:120”,
`tabSales Order`.`customer`为“customer:Link/customer:120”,
`tabSales Order Item`.Item_代码为“Item:Link/Item:120”,
`tabSales Order Item`。Item_名称为“Des:Link/Item:120”,
`tabSales Order Item`.数量为“数量:浮动:100”,
`tabSales Order Item`.发货数量为“发货数量:浮动:100”,
(`tabSales Order Item`.qty-ifnull(`tabSales Order Item`.delivered\u qty,0))作为“要交付的数量:浮动:140”,
`tabSales Order Item`.date为“Sch date:date:100”,
`tabItem`.缩略图为“剪切重量:数据:60”,
`tabProduct master`.等级为“等级:数据:100”,
`tabProduct master`.dieno为“模具编号:数据:100”,
`tabProduct master`.hammer为“hammer:Data:50”,
`tabProduct master`.rm_idl_cs为“idl sec:Data:60”,
`tabProduct master`.rm_alt_cs为“alt sec:Data:60”,
总和(当'tabSales Order`.'name`='tabProduction Order`.'sales\u Order`和'tabSales Order Item`.'Item\u code`='tabProduction Order`.'production\u Item`时的情况)`
然后是“生产订单”。“数量”`
(完)为"发出:内部:80"
从…起
`tab销售订单`
左键联接(`tabSales Order Item`.`parent`=`tabSales Order`.`name`上的`tabSales Order Item`.``
以及`tabSales Order`.docstatus=1和`tabSales Order`.status不在(“已停止”、“已关闭”)和ifnull(`tabSales Order Item`.delived_qty,0)

提前感谢

如果查询只返回一行,那是因为您使用的聚合函数没有group by语句

如果要基于聚合函数设置条件,则应使用
分组后有


您的GROUPBY语句在哪里?哎哟,您在
on
子句中过滤左侧联接表,这是不可能的。这样的过滤器应该在where子句中。您的整个查询对我来说没有任何意义。请提供样品数据和基于样品数据的预期输出。“现在我根本不明白你在追求什么。”谢里福多。非常感谢你的帮助。小组发言解决了我的问题。现在我想从另一列中减去sum列,我该怎么做?@Shadow。非常感谢,先生,小组发言解决了我的问题。现在我想从另一列中减去sum列,我该怎么做?
group by  col1, col2,..
having sum(col1) > 1