Mysql 多个联接中的行之和
我正在尝试对多个联接进行行求和。我只能为单个表找到它,我使用了以下查询Mysql 多个联接中的行之和,mysql,join,sum,Mysql,Join,Sum,我正在尝试对多个联接进行行求和。我只能为单个表找到它,我使用了以下查询 SELECT sd.Descrip ,0 AS TotalLedgerNumber ,ss.Total FROM tblServiceSummary ss LEFT JOIN servdesc sd ON ss.Service_time = sd.ServDescID JOIN funct fn ON fn.FunctID = ss.FunctionID GROUP BY sd.Descrip UNION
SELECT sd.Descrip
,0 AS TotalLedgerNumber
,ss.Total
FROM tblServiceSummary ss
LEFT JOIN servdesc sd ON ss.Service_time = sd.ServDescID
JOIN funct fn ON fn.FunctID = ss.FunctionID
GROUP BY sd.Descrip
UNION ALL
SELECT 'Total'
,SUM(IFNULL(NULL, 0)) AS TotalLedgerNumber
,sum(ss.Total)
FROM tblServiceSummary ss
LEFT JOIN servdesc sd ON ss.Service_time = sd.ServDescID
JOIN funct fn ON fn.FunctID = ss.FunctionID
WHERE fn.StartDate BETWEEN "2018-9-18"
AND "2018-9-18"
GROUP BY sd.Descrip
这给了我这样的结果
我想显示上面显示的所有行以及所有行的总和
我尝试在上下查询中添加remove group by和where。如果我尝试从下查询中删除group by..它显示为Total | null | null,但这不起作用。请建议如果您尝试在组后求和所有行,可以封装查询并在组后求和 例如:
SELECT
SUM(Descrip)
FROM
(
SELECT sd.Descrip
,0 AS TotalLedgerNumber
,ss.Total
FROM tblServiceSummary ss
LEFT JOIN servdesc sd ON ss.Service_time = sd.ServDescID
JOIN funct fn ON fn.FunctID = ss.FunctionID
GROUP BY sd.Descrip
UNION ALL
SELECT 'Total'
,SUM(IFNULL(NULL, 0)) AS TotalLedgerNumber
,sum(ss.Total)
FROM tblServiceSummary ss
LEFT JOIN servdesc sd ON ss.Service_time = sd.ServDescID
JOIN funct fn ON fn.FunctID = ss.FunctionID
WHERE fn.StartDate BETWEEN "2018-9-18"
AND "2018-9-18"
GROUP BY sd.Descrip
) summedRows
你的预期产出是多少?一些样本数据会很有帮助!问题措辞不清楚预期输出是上述所有行的总和,也可以扫描您发布的预期输出。所有行的总和可以在应用程序代码级别本身确定。我不希望在应用程序代码级别。在这种情况下,您需要发布预期的表输出(以图片或表的形式)。目前,这是没有意义的!