注册 登录
编程论坛 SQL Server论坛

合并记录

遗忘的爱 发布于 2013-01-24 14:30, 427 次点击
程序代码:
select 计划单号 as MPS计划单号,g_name as 产品名称,计划投入量 as 计划产量,开始日期 as 计划投产时间,结束日期 as 计划产出时间
from
(select a.计划单号,g_name,计划投入量,开始日期 from MPS_Ouput a,MPS_Input where a.计划单号=MPS_Input.计划单号 and  a.计划投入量<>0)t1
union
(select 结束日期 from MPS_Ouput b where b.计划产出量<>0)t2
大家帮忙看看这有什么错误?
3 回复
#2
party6202013-03-01 13:30
union连接两个表时,select查询的字段数据类型和个数必须相同;
你上网查询一下union的具体用法吧
#3
繁星如尘2013-03-07 16:42
以下是引用遗忘的爱在2013-1-24 14:30:14的发言:

select 计划单号 as MPS计划单号,g_name as 产品名称,计划投入量 as 计划产量,开始日期 as 计划投产时间,结束日期 as 计划产出时间
from
(select a.计划单号,g_name,计划投入量,开始日期 from MPS_Ouput a,MPS_Input where a.计划单号=MPS_Input.计划单号 and  a.计划投入量<>0)t1
union
(select 结束日期 from MPS_Ouput b where b.计划产出量<>0)t2大家帮忙看看这有什么错误?
union的两个结果集相对应的列的数据类型应该一样,列数也是一样
#4
暖暖的南风2013-03-13 15:43
问题出在查询列上,合并多个结果集时,使用union[all]时有两个原则:1.所查询的语句中列的个数和列的顺序必须相同2.所查询语句中对应列的数据类型必须兼容
1