2016-08-22 71 views
1

我设计了一个新的应用程序。 我使用sQL服务器。所以我有一个问题。 我想要table tbStock caculate,在列tbStock.quality = tbImport.quality - tbExport.quality 但他们必须遵循字段批处理。 这是我的代码。不工作更新以下批次的股票

create proc [dbo].[sp_XuatLayBatch] 
    @Ma as nchar(14) 

    as 
    select sum(tbImport .SoLuong)as SLN,sum(tbExport .SoLuong)as SLX,tbImport .Batch from tbImport, tbExport 
    where tbImport .Ma = @Ma and (tbExport.Ma=tbImport .Ma or tbExport.Ma is null) 
    group by tbImport .Batch 

这是我的照片。 http://www.mediafire.com/view/l5fyiaa8flolgda/Batch_tong_2.JPG

+0

这只是SP选择一些款项,究竟你需要达到什么目的? – gofr1

+0

你想做什么? Sp和Formula之间关于质量的联系是什么? – KuldipMCA

+0

感谢您的帮助。 –

回答

0

我想我明白你所追求的:只是一个总从在该批次的进口库存量,减去出口的股票给你的那批剩余的整体股票?

如果是这样的:

select i.[No] 
     ,i.Code 
     ,i.Name 
     ,i.Quality - isnull(e.Quality,0) as Quality 
     ,i.Batch 
from tbImport i 
    left join (select Code 
         ,Name 
         ,sum(Quality) as Quality 
         ,Batch 
       from tbExport 
       group by Code 
         ,Name 
         ,Batch 
       ) e 
     on(i.Code = e.Code 
      and i.Name = e.Name 
      and i.Batch = e.Batch 
      ) 
where i.Quality - isnull(e.Quality,0) > 0 
+0

感谢您的帮助。例如,我只想获得质量值“> 0”。我该怎么做?请帮助我。将代码添加到下面的代码中,它不工作。i.quality> e.Quality。select i。[No],i.Code,i.Name,i.Quality - isnull(e.Quality,0)as Quality ,i.Batch从tbImport我离开加入(选择代码,名称,总和(质量)作为质量,从tbExport组按批次,名称,批次)e on(i.Code = e.Code和i.Name = e。名称和i.Batch = e.Batch)其中质量> 0. –

+0

@LaVanHai在继续执行您的这个项目之前,您确实需要对SQL基础知识进行一些研究。 – iamdave