select *
from (
    select *,1 as rn from A
    union all
    select *,2 as rn from B
) as t1
order by 企业编码,rn desc,领票日期

解决方案 »

  1.   


    试试这样:
    select 企业编码,企业名称,领购日期,领购数量
    from (
        select *,1 as rn from A
        union all
        select *,2 as rn from B
    ) as t1
    order by 企业编码,rn desc,领票日期
      

  2.   


    试试这样:
    select 企业编码,企业名称,领购日期,领购数量
    from (
        select *,1 as rn from A
        union all
        select *,2 as rn from B
    ) as t1
    order by 企业编码,rn desc,领票日期谢谢您了,非常感谢。能给我解释下吗?
      

  3.   

    我刚才试试,union 后面的all 不加好像也行吧?
      

  4.   

    if OBJECT_ID('A') IS NOT NULL
    DROP  TABLE [A]
    CREATE TABLE [A](企业编码 varchar(10),企业名称 varchar(30),领购日期 varchar(20),领购数量 int)
    insert into [a]
    select '001' ,'上海一线公司','2013-12-25',50 union all
    select '001','上海一线公司','2013-12-28',120 
    if OBJECT_ID('B') is not null
    drop table[B]
    create table [B] (企业编码 varchar(10),企业名称 varchar(30),出库日期 varchar(20),数量 int)
    insert into [B]
    select '001' ,'上海一线公司','2013-12-24',30 union all
    select '001','上海一线公司','2013-12-26 ',190
     
    select * from A 
    SELECT * FROM B
    --select * from [a] innser join [B] on 1=1select A.企业编码,A.企业名称, A.领购日期 as 领票日期,A.领购数量 as 本次购票数量 from A
     UNION ALL  
    select b.企业编码,b.企业名称, b.出库日期 as 领票日期,b.数量 as 本次购票数量 from B
      

  5.   


    嗯 ,应该也行,因为两个表的数据不同,其实这个union all就是合并2个表的数据,而union 是现合并,然后去除重复的数据
      

  6.   


    嗯 ,应该也行,因为两个表的数据不同,其实这个union all就是合并2个表的数据,而union 是现合并,然后去除重复的数据谢谢指导新手,非常感谢。
      

  7.   

    前半部分生成测试表结构及其数据的都是别人自己手打的,为了更好的重现你的数据环境。至于查询语句,主要有两点1、关于子查询
    select 你需要展示的字段名 from (子查询语句) as 别名 where ... order by ...
    在SQL2005版本及其之上,可以采用with cte的用法2、关于union all
    这个是将不同的查询数据集按照相同的结构,不剔除重复上下连接到一起,其中只用union的时候是可以去掉重复的,重复表示的是
    select col1,col2,col3... from a
    union
    select col1,col2,col3... from b
    中的col1,col2,col3...完全重复的数据
      

  8.   


    嗯 ,应该也行,因为两个表的数据不同,其实这个union all就是合并2个表的数据,而union 是现合并,然后去除重复的数据您好,我如果想统计这个企业领购了多少次发票呢?能够实现吗?
      

  9.   


    嗯 ,应该也行,因为两个表的数据不同,其实这个union all就是合并2个表的数据,而union 是现合并,然后去除重复的数据您好,我如果想统计这个企业领购了多少次发票呢?能够实现吗?select 企业编码,企业名称,COUNT(*)
    from (
        select *,1 as rn from A
        union all
        select *,2 as rn from B
    ) as t1group by 企业编码,企业名称
      

  10.   

    我刚才写的是count(rq) 。。  谢谢阳泉小酒家了
      

  11.   


    嗯 ,应该也行,因为两个表的数据不同,其实这个union all就是合并2个表的数据,而union 是现合并,然后去除重复的数据您好,我如果想统计这个企业领购了多少次发票呢?能够实现吗?select 企业编码,企业名称,COUNT(*)
    from (
        select *,1 as rn from A
        union all
        select *,2 as rn from B
    ) as t1group by 企业编码,企业名称好像不行吧?我加上count(*) 报错了