select-两个表中数据分类汇总合并的问题

问题描述

两个表中数据分类汇总合并的问题
我有两个表,表中各有一个类型字段,名称字段,数值字段,例 如下:
表1:
类型 名称 数值
文具 铅笔 2
耗材 纸 10
表2
类型 名称 数值
文具 铅笔 1
耗材 纸 1
表1存的是采购计划数据,表2存的是采购数据
我现在需要将两表的各自分类数据汇总后进行输出

类型 名称 采购计划数 采购数
文具 铅笔 2 1
耗材 纸 10 1

现在的写法怎么写数据都出现了交叉,请大神讲讲!
select 该 怎么写?

解决方案

 select 类型名称sum(采购计划数) as 采购计划数sum(采购数) as 采购数 from(select 类型名称数值 as 采购计划数0 as 采购数 from 表1unionselect 类型名称0 as 采购计划数数值 as 采购数 from 表2) a

解决方案二:
两个数据库表中合并数据

解决方案三:
select 表1.* 表2.数值 from 表1 表2 where 表1.类型=表2.类型 and 表1.名称=表2.名称
这个表设计有问题

表2应该这样
表2的id,表1的主键id,采购数
表1
id,类型 名称 数值
select 表1.* 表2.数值 from 表1 LEFT JOIN 表2 on 表1.id=表2.表1的主键id

解决方案四:
select 表1.类型表1.名称表1.数值 as 采购计划数表2.数值 as 采购数 from表1 表2 where 表1.类型=表2.类型 and 表1.名称=表2.名称

解决方案五:
select 类型名称sum(采购计划数) as 采购计划数sum(采购数) as 采购数 from
(
select 类型名称数值 as 采购计划数0 as 采购数 from 表1
union
select 类型名称0 as 采购计划数数值 as 采购数 from 表2
) a

时间: 2024-07-28 17:34:40

select-两个表中数据分类汇总合并的问题的相关文章

mysql中SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

SELECT INTO 和 INSERT INTO SELECT 两种表复制语句       Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)       这种形式的在应用程序开发中必不可少.但我们在开发.测试过程中,经常会遇到需要表复制的情况,       如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们       就

mysql中同时查两个表中的前2000条

问题描述 mysql中同时查两个表中的前2000条 比方说我有两个结构一样的表,但是由于各种原因并不能合并. 其中有一个create_time 字段记录了时间 我想同时查出两个表中时间大于某个时间(例:2016-04-01 00:00:00)的前2000条数据 要求是查出来一共2000条,而不是每个表查2000条出来. 求大神!谢谢! 解决方案 SELECT CREATE_TIME FROM (SELECT 字段1,字段2 from 表1 where create_time>某个时间 union

查询两个表中字段个数不同,名称不同的SQL语句

语句 此sql语句能对两个不同表不同结构不同字段进行查询,并且能分出哪个记录是属于哪个表中的 有两个表table1结构如下id title content table2结构如下id content bigclass smallclass sql="select id, title, content,'' as bigclass,'' as smallclass, 'tbl1' as tbl from table1 where title like '%"&keyword&

看实例学VFP:同时向两个表中添加记录

本文利用看实例学VFP:利用多个表中的字段创建新表这个实例中的知识来制作一个文本式录入表单的简单示例,通过这个表单可以同时向"数据1"数据库中的"网站信息表"和"附加信息表"这两个表中添加记录,并且对录入的数据可以选择"保存"."添加"或"撤消".这两个表的索引字段分别是"编号"和"网站编号",这两个字段的内容是完全相同的,只是分别处于两个表中,并

mybatis-Spring+Mybatis从两张表中取值并传值到页面 分页

问题描述 Spring+Mybatis从两张表中取值并传值到页面 分页 我写的Dao //根据登陆ID查询直属下属 (分页) List> findByid(String id,RowBounds rowBounds); 对应的mapper SELECT u.user_code,a.totasalar from c_user_info u JOIN c_attence_info aON u.id=a.relatedid where department=(SELECT department FRO

sql server-c# sqlserver 查询两个表中数据用datagridview 显示出来 老师出错 求大神指导

问题描述 c# sqlserver 查询两个表中数据用datagridview 显示出来 老师出错 求大神指导 string sql = " select a.2, a.3, b.2, b.3 from a, b, c where a.1= c.1 and b.1 = c.1 "; //查询语句太长 我就直接把意思表达出来 没有粘代码 DataSet ds1 = new DataSet(); DataTable dt = new DataTable (); DataSet ds2 =

建表-当我要查询的数据同时在两个表中时,是否应该再建一个新的表?

问题描述 当我要查询的数据同时在两个表中时,是否应该再建一个新的表? 我有一个收入表(表1),一个支出表(表2),然后这样的话就可以对它们进行操作,但是我现在想要查询一个月之内的收支记录,按时间先后排序,我该怎么做呢?我要再建一个表把表1,表2的数据插进去么?还是有别的办法? 解决方案 使用联表连接两个表将两个表的数据同时显示出来或者将两个表的数据查出来后放入到视图当中 解决方案二: 当我每查询一次(当表1,表2更新时)的时候都要先把数据放到视图当中,是不是应该用触发器啊? 解决方案三: 你可以

dropdownlist-DropDownList获取两个表中的数据!!

问题描述 DropDownList获取两个表中的数据!! 我做的是一个员工管理系统!现在的问题是我现在添加一个部门,想要让他自动显示在我新建员工的部门DropDownList里面 解决方案 DropDownList datasource 重新绑定下数据.或者 dropdownlist item add 添加新的部门数据.

在Derby数据库中联表查询的时候遇到两个表中相同的列名如何使用rs.getString(表名.列名查询)?表名.列名试过不行

问题描述 在Derby数据库中联表查询的时候遇到两个表中相同的列名如何使用rs.getString(表名.列名查询)?表名.列名试过不行.希望高手回答!!!!! 解决方案 解决方案二:自己顶顶先等待高手的答复~~~~~解决方案三:好像一般数据库的都不行一种方式用列序号取,最好还是改成其他名字解决方案四:终于有兄弟回复了,感激一下先.但是很多数据库都是支持的,比如说我们可爱的MySQL,SQLServer之类的稳定的数据库.Derby肯定是有的,但是我们不知道罢了.它的语法格式解决方案五:查询的时