哇哈哈哈 发表于 2024-5-23 10:40:09

两表格,名称相同的合计在图文列表显示

两表格,名称相同的合计在图文列表显示,来个大佬~谢谢

wwbb 发表于 2024-5-23 10:40:10

哇哈哈哈 发表于 2024-5-24 11:35
在sql是正常的运行的,活字格报错这个

> 1349 - View's SELECT contains a subquery in the FROM clause
这个错误是mysql视图中不支持有子查询

那我们可以将子查询先创建成一个视图,在将视图中进行统计
视图1:


SELECT name, num,total FROM table1
UNION ALL -- 不去重,用UNION ALL;去重,用UNION
SELECT name, num,total FROMtable2



视图2:

SELECT name, SUM(num) AS 数量,SUM(total) AS 总数
FROM 视图1
GROUP BY name

哇哈哈哈 发表于 2024-5-23 11:59:31

:'(来大佬..

Lay.Li 发表于 2024-5-24 09:44:19


您好,相同名称的总数可以理解,汇总就行,那这里的数量是要去哪一张表的呢

可以考虑写个视图汇总一下两张表的数量,然后再用图文列表展示即可,sql我们也不是很擅长,可以再网上查找想过方案实现




wwbb 发表于 2024-5-24 10:00:57

本帖最后由 wwbb 于 2024-5-24 10:04 编辑

哇哈哈哈 发表于 2024-5-23 11:59
来大佬..

SELECT [名称], SUM([数量]) AS 合计数量
FROM (
    SELECT [名称], [数量] FROM [表1]
    UNION ALL -- 不去重,用UNION ALL;去重,用UNION
    SELECT [名称], [数量] FROM [表2]
) AS combined_tables
GROUP BY [名称]


<div><span style="color: #0000ff;">SELECT</span> [名称], <span style="color: #c700c7;">SUM</span>([数量]) <span style="color: #0000ff;">AS</span> 合计数量
<span style="color: #0000ff;">FROM</span> (
    <span style="color: #0000ff;">SELECT</span> [名称], [数量] <span style="color: #0000ff;">FROM</span> [表1]
    <span style="color: #778899;">UNION</span> <span style="color: #778899;">ALL</span> <span style="color: #008000;">-- 不去重,用UNION ALL;去重,用UNION</span>
    <span style="color: #0000ff;">SELECT</span> [名称], [数量] <span style="color: #0000ff;">FROM</span> [表2]
) <span style="color: #0000ff;">AS</span> combined_tables
<span style="color: #0000ff;">GROUP</span> <span style="color: #0000ff;">BY</span> [名称]</div>

不知道是否满足需求,仅供参考

哇哈哈哈 发表于 2024-5-24 10:22:03

wwbb 发表于 2024-5-24 10:00
SELECT [名称], SUM([数量]) AS 合计数量
FROM (
    SELECT [名称], [数量] FROM [表1]


            数量总数
商品1        2        2
商品2        2        2

哇哈哈哈 发表于 2024-5-24 10:25:32

哇哈哈哈 发表于 2024-5-24 10:22
数量总数
商品1        2        2
商品2        2        2

要这样,就是两表相加

wwbb 发表于 2024-5-24 10:25:58

哇哈哈哈 发表于 2024-5-24 10:22
数量总数
商品1        2        2
商品2        2        2


SELECT [名称], SUM([数量]) AS 数量,SUM([总数]) AS 总数
FROM (
    SELECT [名称], [数量],[总数] FROM [表1]
    UNION ALL -- 不去重,用UNION ALL;去重,用UNION
    SELECT [名称], [数量],[总数] FROM [表2]
) AS combined_tables
GROUP BY [名称]



在添加两个字段就可以



哇哈哈哈 发表于 2024-5-24 11:07:04

wwbb 发表于 2024-5-24 10:25
SELECT [名称], SUM([数量]) AS 数量,[ ...

知道怎么原因吗

wwbb 发表于 2024-5-24 11:17:39

你用的是mysql外链库吧,我给的是活字格自带数据库的sql写法。你把所有的字段上的[]   去掉
页: [1] 2
查看完整版本: 两表格,名称相同的合计在图文列表显示