2016-08-22 14 views
1

私は新しいアプリケーションを設計しました。 私はsQLサーバーを使用しています。だから私はプロメルを持っています。 tbStock.quality = tbImport.quality - tbExport.quality の列にテーブルtbStockが必要ですが、フィールドバッチに従わなければなりません。 これは私のコードです。役に立たなかったバッチ後の在庫更新

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とフォーミュラの関係は何ですか? – 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.City、i.Name、i.Quality - isnull(e.Quality、0)をQualityとして選択します。 (コード、名前、合計(品質)を品質として選択、tbExportグループからコード、名前、バッチでバッチ)e on(i.Code = e.Codeとi.Name = e。 Name and i.Batch = e.Batch)Quality> 0. –

+0

@LaVanHaiこのプロジェクトを進める前に、SQLの基礎についての調査を実際に行う必要があります。 – iamdave