出库单按订单打单,一张订单可以有关联多张出库单,两张表按订单号(ORDERNO)关联,订单表A  ,出库单表B 
比如:订单号A01,订单数量100,按订单出库单有两张,出库单号c01 数量20,另一张出库单号c02 数量80,写一语句能生成如下表:订单号 订单数量 出库单号 出库数量
A01     100     C01     20
                C02     80
应该怎样写。

解决方案 »

  1.   

    select a.订单号,a.订单数量,b.出库单号,b.出库数量 from 订单 a join 出库单 b on a.订单号=b.订单号========================================
    http://www.dbtuning.cn
    主营:中小企业数据库管理、优化、调校服务
    ========================================
      

  2.   

    select a.订单号,a.订单数量,b.出库单号,b.出库数量 from 
    订单 a right join 出库单 b on a.订单号=b.订单号/
    select a.订单号,a.订单数量,b.出库单号,b.出库数量 from 
    订单 a full outer join 出库单 b on a.订单号=b.订单号
      

  3.   

    以上的结果会是这样订单号 订单数量 出库单号 出库数量 
    A01    100     C01     20 
    A01    100     C02     80 
    这样的话就会重复订单数量
    我是想这样的结果:
    订单号 订单数量 出库单号 出库数量 
    A01    100     C01     20 
                   C02     80 
      

  4.   

    這樣的結構應該是在報表中顯示的,
    數據庫中顯示的是:
    A01    100    C01    20 
    A01    100    C02    80 
    select a.订单号,a.订单数量,b.出库单号,b.出库数量 from 订单 a 出库单 b where a.订单号=b.订单号如果有訂單未出庫的也顯示的話,就改左連接.
      

  5.   

    cid出库单号,did订单号
    select * from (
     select did 订单号,订单数量, cid 出库单号, 出库数量  from b t where not exists(select 1 from b where did<t.did and cid=t.cid)) t1 inner join a on t1.did = a.did 
     union all 
     select did 订单号,订单数量, cid 出库单号, 出库数量  from b t where exists(select 1 from b where did<t.did and cid=t.cid)) t2 left join 
     (select top 0 * from a) t3  on t2.did=t3.did
    ) t4 order by 订单号,出库单号
      

  6.   

    订单号 订单数量 出库单号 出库数量 
    A01    100    C01    20 
                  C02    80 
    你是想在绑定数据的时候,在页面中显示么?
    还是在数据库中要显示这样的结果?
      

  7.   

    那就不是SQL的问题了,你在绑定gridview的时候重新做处理!
      

  8.   

    [code=SQL]SELECT 
    订单号=CASE WHEN 出库单号=(SELECT MIN(出库单号) FROM TC WHERE 订单号=A.订单号) THEN A.订单号 ELSE '' END,
    订单数量=CASE WHEN 出库单号=(SELECT MIN(出库单号) FROM TC WHERE 订单号=A.订单号) THEN A.订单数量 ELSE '' END,
    B.出库单号,
    B.出库数量
    FROM TB A
    LEFT JOIN TC B
    ON A.订单号=B.订单号
      

  9.   

    SELECT 
    订单号=CASE WHEN 出库单号=(SELECT MIN(出库单号) FROM TC WHERE 订单号=A.订单号) THEN A.订单号 ELSE '' END,
    订单数量=CASE WHEN 出库单号=(SELECT MIN(出库单号) FROM TC WHERE 订单号=A.订单号) THEN A.订单数量 ELSE '' END,
    B.出库单号,
    B.出库数量
    FROM TB A
    LEFT JOIN TC B
    ON A.订单号=B.订单号
      

  10.   

    select a.订单号,a.订单数量,b.出库单号,b.出库数量
    from A a inner join B b on a.orderno=b.orderno
      

  11.   


    create table t1 (id varchar(3),num int)create table t2 (id2 varchar(3),ch varchar(3) ,num2 int)
    insert t1 select 'A01',100
    insert t2 select 'A01','c01',20 union all
              select 'A01','c02',80
    declare @n varchar(3)
    declare @nu int
    select 'id'  = 
           case when t2.num2 != (select min(t2.num2) from t2 where t2.id2 = t1.id) then '' else t1.id end,
          'num' =
           case when t2.num2 != (select min(t2.num2) from t2 where t2.id2 = t1.id) then '' else t1.num end,
           t2.ch,
           t2.num2 from t1 left join t2 on t1.id = t2.id2
    drop table t1
    drop table t2