2016-08-22 53 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