两个表中字段非常多,字段个数不等且不完全重复想要合并怎么写sql语句
如下
a表字段
姓名 工资 年 月b表字段
姓名 工资 奖金 扣保险 年 月合并时不是相同姓名的合并,而是所有数据合并且每次合并月份会不一样但是每月的人都差不多 所以会有一张表里 一个人出现多次的情况 但是月份是不一样的 怎么写啊  先谢谢了

解决方案 »

  1.   

    select 姓名,工资,0 as 奖金,0 as 扣保险 ,年,月 from a表
    union all
    select 姓名,工资,奖金,扣保险,年,月 from b表
    -- 你先看看效果是不是你要的
    -- 你说字段的顺序不一样是什么意思?只是两个表显示那个没关系的。字段可以看成没有先后顺序。
      

  2.   

    create table a
    (
    姓名 varchar(10),
    工资 int,
    年  int,
    月 int
    )
    insert into a values('李四', 1000,2011, 1)
    insert into a values( '张三', 1500, 2011, 1)
    create table b
    (
    姓名 varchar(10),
    工资 int,
    扣保险 int,
    奖金  int,
    年  int,
    月 int,

    )
    insert into b values('张三', 1500 ,100 ,100 ,2011, 2)
    insert into b values('李四', 1000, 150 ,100 ,2011, 2)select 姓名 ,工资,0 as 扣保险 ,0 as 奖金, 年, 月 from a
    union all
    select 姓名 ,工资,扣保险,奖金, 年, 月 from b/*
    姓名,工资,扣保险,奖金,年,月
    李四,1000,0,0,2011,1
    张三,1500,0,0,2011,1
    张三,1500,100,100,2011,2
    李四,1000,150,100,2011,2(4 行受影响)
      

  3.   

    请问那个select后的字段必须按照那样的顺序写嘛,它提示我:将 nvarchar 值 '刘淑香' 转换为数据类型为 int 的列时发生语法错误。
    由于字段很多 我是这样写得:select * from a1a1
    union all
    select *,0  as '税前工资',0 as '个人所得税',0 as '技工补贴'  from temp
      

  4.   

    你字段没有对工整,不要用 * 吧列名输进去 然后对齐列名
    nvarchar 值 '刘淑香' 这能转换成为int类型吗?
      

  5.   

    SQL> with A as (
      2  select '李四' 姓名, 1000 工资, 2011 年, 1 月 from dual
      3  union all
      4  select '张三' 姓名, 1500 工资, 2011 年, 1 月 from dual),
      5  B as (
      6  select '张三' 姓名, 1500 工资, 100 奖金, 100 扣保险, 2011 年,2 月 from dual
      7  union all
      8  select '李四' 姓名, 1000 工资, 150 奖金, 100 扣保险, 2011 年,2 月 from dual)
      9  select 姓名,工资,null as 奖金,null as 扣保险,年,月 from A
     10  union all
     11  select 姓名,工资,奖金,扣保险,年,月 from B;
     
    姓名         工资         奖金        扣保险          年          月
    ---- ---------- ---------- ---------- ---------- ----------
    李四       1000                             2011          1
    张三       1500                             2011          1
    张三       1500        100        100       2011          2
    李四       1000        150        100       2011          2
     
    SQL>