billno  RegDate     Goodsname  设备总款 条码总款  
0001    2009-01-01    A型条码    0         20
0002    2009-01-01    B型条码    0         30
0002    2009-01-01    采集器1    20        0
0003    2009-10-04    采集器2    30        0A型条码 B型条码 都属于条码类,采集器1 采集器2 属于设备类 需要通过一查询,形成以下结果 billno  RegDate     条码类  条码总款  设备类   RegDate    设备总款  
0001   2009-01-01  A型条码   20       0002     2009-01-01  20
0002   2009-01-01  B型条码   30       0003     2009-10-04  30

解决方案 »

  1.   

    billno RegDate Goodsname 设备总款 条码总款   
    0001 2009-01-01 A型条码 0 20
    0002 2009-01-01 B型条码 0 30
    0002 2009-01-01 采集器1 20 0
    0003 2009-10-04 采集器2 30 0A型条码 B型条码 都属于条码类,采集器1 采集器2 属于设备类  需要通过一查询,形成以下结果  billno RegDate 条码类 条码总款 billno 设备类 RegDate 设备总款   
    0001 2009-01-01 A型条码 20 0002  采集器1 2009-01-01  20
    0002 2009-01-01 B型条码 30 0003  采集器2 2009-10-04  30
      

  2.   

    select * from 
    (select row_number() over(order by getdate()) no,billno,RegDate,Goodsname,设备总款
    from tb where 设备总款>0) a,
    (select row_number() over(order by getdate()) no,billno,RegDate,Goodsname,条码总款
    from tb where 条码总款>0) b
    where a.no=b.no
      

  3.   

    select
     * 
    from 
    (select id=row_number() over(order by getdate()),billno,RegDate,Goodsname,设备总款
    from tb ) a,
    (select id=row_number() over(order by getdate()),billno,RegDate,Goodsname,条码总款
    from tb ) b
    where
     a.id=b.id
    and
     a.设备总款>0
    and
     b.条码总款>0
      

  4.   

    Sql server 2000呀,老兄们
      

  5.   

    楼主czwily,下面是实现的SQL语句,思路是这样的:
    首先你查询得到条码类信息如下:
             0001 2009-01-01  A型条码    20
            0002 2009-01-01  B型条码    30
    其次你查询得到设备类信息如下:
             0003 2009-10-04  采集器2    30
            0002 2009-01-01  采集器1    20
    最后连接两个表,检索结果集。
    SQL语句如下例:
    SELECT * FROM
    (
     (SELECT billno,RegDate,Goodsname AS '条码类',条码总款 FROM test2 WHERE 条码总款>0) AS A
      LEFT JOIN (SELECT billno,RegDate,Goodsname AS '设备类',设备总款 FROM test2 WHERE 设备总款>0) AS B
      ON A.条码总款 = B.设备总款
    )
    ORDER BY A.billno
    以上,愿可以解决你的问题,有用记得顶一下哦,加个分!