两个不相干表,我想从中取出数据,在一个报表中显示
如果是两个表join的话,可能出现很多的重复数据(相对某些列)所以我想用一个dataset来联合连个表(用两个element项),把他们结合起来,请问这样可以吗??没有成功请问有什么好其他方法实现这样的要求吗??谢谢各位大哥了,谢谢

解决方案 »

  1.   

    谢谢,使用视图一样的道理啊??
    我用存储过程建立了临时表如下:/*代理中心库月度发出分配表一*/CREATE   PROCEDURE sp_ReplaceSaleOne 
    (
     @BeginTime datetime,
     @EndTime datetime
     )
    AS
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*这里分为两个临时表*/
    /*下面这个表的是为老产品的临时表建立的*/
      SELECT p.CorpID,Company.CorpName,p.DeptID,Dept.DeptName , --p.ProductID, p.ProductName,p.ep1, 
          SortBig.BigName,SortBig.BigID,SortSmall.SmallName, p.SmallID, --g.SaleNoteID,  
          h.CustID,h.CustName,sum(i.Amount) as Amount,   Sum(i.Price*i.Amount) as SaleMoney
    into #t FROM dbo.SaleNoteItem i INNER JOIN
          dbo.Product p ON p.ProductID = i.ProductID INNER JOIN
          dbo.SaleNote g ON g.SaleNoteID = i.SaleNoteID INNER JOIN
          dbo.Customer h ON h.CustID = g.CustID
          INNER JOIN
          dbo.SortSmall ON dbo.SortSmall.BigID = p.bigid AND 
          dbo.SortSmall.SmallID = p.smallid INNER JOIN
          dbo.SortBig ON dbo.SortBig.BigID = p.bigid INNER JOIN
          dbo.Dept ON Dept.DeptID = p.deptid INNER JOIN
          dbo.Company  ON Company.CorpID = p.corpid
    where g.flag=0 --and AuditDate>@BeginTime and AuditDate<@EndTime
    group by p.CorpID,Company.CorpName,p.DeptID,Dept.DeptName ,
          SortBig.BigName,SortBig.BigID,SortSmall.SmallName, p.SmallID,--g.SaleNoteID,
          h.CustID,h.CustNameselect x.CorpID,x.CorpName,x.DeptID,x.DeptName , --p.ProductID, p.ProductName,p.ep1, 
             x.BigName,x.BigID, --g.SaleNoteID,  
               x.CustID,x.CustName,Sum(x.nSaleMoney) as nSaleMoney,Sum(x.zSaleMoney) as zSaleMoney,
                  Sum(x.dSaleMoney) as dSaleMoney
     into #t1 from(
      select CorpID,CorpName,DeptID,DeptName , --p.ProductID, p.ProductName,p.ep1, 
             BigName,BigID,SmallName, SmallID, --g.SaleNoteID,  
               CustID,CustName,Sum(SaleMoney) as nSaleMoney,0 zSaleMoney,0 dSaleMoney
        from #t  where SmallName!='2222' and SmallName!='333'
           group by CorpID,CorpName,DeptID,DeptName ,  
             BigName,BigID,SmallName, SmallID, 
               CustID,CustName
    union all
      select CorpID,CorpName,DeptID,DeptName , --p.ProductID, p.ProductName,p.ep1, 
             BigName,BigID,SmallName, SmallID, --g.SaleNoteID,  
               CustID,CustName,0 nSaleMoney,Sum(SaleMoney) as zSaleMoney,0 dSaleMoney
        from #t  where SmallName='333'
           group by CorpID,CorpName,DeptID,DeptName , --p.ProductID, p.ProductName,p.ep1, 
             BigName,BigID,SmallName, SmallID, --g.SaleNoteID,  
               CustID,CustName
    union all
      select CorpID,CorpName,DeptID,DeptName , --p.ProductID, p.ProductName,p.ep1, 
             BigName,BigID,SmallName, SmallID, --g.SaleNoteID,  
               CustID,CustName,0 nSaleMoney,0 zSaleMoney,Sum(SaleMoney) as dSaleMoney
        from #t  where SmallName='2222
           group by CorpID,CorpName,DeptID,DeptName , --p.ProductID, p.ProductName,p.ep1, 
             BigName,BigID,SmallName, SmallID, --g.SaleNoteID,  
               CustID,CustName
     ) x
    group by x.CorpID,x.CorpName,x.DeptID,x.DeptName , --p.ProductID, p.ProductName,p.ep1, 
             x.BigName,x.BigID, --g.SaleNoteID,  
               x.CustID,x.CustName--静态交叉表
    select identity(int,1,1) as Iid,t.CorpID,t.CorpName,t.DeptID,t.DeptName,t.CustID,t.CustName,
      sum(case BigName when 'li' then nSaleMoney else 0 end) as nSaleMoney, 
      sum(case BigName when 'li' then zSaleMoney else 0 end) as zSaleMoney,
      sum(case BigName when 'li' then dSaleMoney else 0 end) as dSaleMoney,     sum(case BigName when 'l2' then nSaleMoney else 0 end) as ep10,
         sum(case BigName when 'l2' then zSaleMoney else 0 end) as ep11,
         sum(case BigName when 'l2' then dSaleMoney else 0 end) as ep12
                
     into #t2 from #t1 t
    group by t.CorpID,t.CorpName,t.DeptID,t.DeptName,t.BigName,t.CustID,t.CustName
    select * from #t2
    --------------------------------------------------------------------------------------------------------
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*这里分为两个临时表*/
    /*下面这个表的是为新产品的临时表建立的*/
    select kk.Amount,kk.newstockpricetx,(kk.Amount*kk.newstockpricetx) as totalprice,mm.bigid,mm.bigname
    into #temp2
    from
    (
    select aa.Amount,bb.newstockpricetx,(aa.Amount*bb.newstockpricetx) as totalprice,bb.bigid
    from
    (
    select distinct p.productid,  p.Amount from inventorylog p where (p.notetypeid='1' or p.notetypeid='0') --and datediff(day,p.notedate,getdate()-7)<=0
    and p.notedate > '2005-5-3' and p.notedate < '2005-6-3'
      and p.productid not in 

     select distinct b.productid from inventorylog b where (b.notetypeid='1' or b.notetypeid='0') 
    and b.notedate <'2005-5-3'

    ) aa, product bb where aa.productid = bb.productid
    ) kk, sortbig mm where mm.bigid = kk.bigid
    --静态交叉表
    select totalprice,
    sum (case bigname when '例1'then totalprice else 0 end) as XStotalprice,
    sum (case bigname when '例2'then totalprice else 0 end) as QBtotalpriceinto #temp22 from #temp2 
    group by totalpriceselect * from #temp22
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    drop table #temp22
    drop table #temp2drop table #t
    drop table #t1
    drop table #t2
    GO
    上面,我建立了两个不相干的临时表,我想在同一个dataset中描叙,在同一个报表中显示出来,我这样试了,没有成功,请问各位大哥,有什么好的办法吗??其他方法也可以,谢谢各位了
    注:
    本来我想联合这两个表的,但是会出现重复数据,没有行的通,如下:
    select a.*,b.* from #temp22 a, #t2 b 
    谢谢各位大哥了,谢谢
      

  2.   

    可以试式两次查询得到的两个记录集填充到DataSet的表中。