LOGO

LOGO
LOGO
ads header

Breaking News

STOK PROGRAMLARINDAN GİRİŞ ÇIKIŞ BAKİYELERİNİ BULMA(TRİGERSİZ




Urunler tablosunda ürünlerin kaç adet giriş yapıldığını bulmak için
1)URUNLER tablosu tanımlıyoruz

2)TBL_SATISDETAY   TABLOSU  tanımlıyoruz

Burada  GIRENMIKTAR,CIKANMIKTAR  diye alan tanımlayıp  tüm giriş ve çıkışları tek bir tabloda yapıyoruz.Satışlar  stok giriş ve çıkışları burada yapıyoruz.Burada CariID alanıda kullanabiliriz.

2)Sonra Miktar toplamını bulmak için ms sql de function tanımlıyoruz
USE [stok]
GO
/****** Object:  UserDefinedFunction [dbo].[PRO_GELENTOPLAM]    Script Date: 9.04.2020 00:59:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION  [dbo].[PRO_GELENTOPLAM](@URUNKODU VARCHAR(30)) RETURNS INT
AS BEGIN

 DECLARE @MIKTAR INT
 SELECT
     @MIKTAR=SUM([GIRENMIKTAR])
      
  FROM [civanticaret].[dbo].[TBL_SATISDETAY]
  WHERE [URUNKODU]=@URUNKODU

  SET @MIKTAR=ISNULL(@MIKTAR, 0)

--SELECT [dbo].[GELENTOPLAM] ('61') KULANIMI

RETURN @MIKTAR 


END

Bu şekilde stoklara giren toplamları bulabiliriz.
3)Daha sonra  sonra ürünler tablosuna   GELENMIKTAR Alanı ekliyoruz türü INT olan

Sonra eklediğimiz bu alanın tipini compute field  şekline aşağıdaki gibi çeviyoruz


ALTER TABLE [TBL_URUNLER] ADD CONSTRAINT DF_TBL_URUNLER_SUMGELEN DEFAULT '([dbo].[PRO_GELENTOPLAM]([TBL_URUNLER].[URUNKODU]))' FOR GELENMIKTAR


BU SAYEDE ARTIK ÜRÜNLER TABLOSUNDA

SELECT URUNKODU,URUNADI,GELENMIKTAR from URUNLER  dediğimiz zaman
Gelenmiktar değeri function ile hesaplanıp sonucu direkt GELENMIKTAR alanında gösterebiliyoruz

CREATE TABLE [dbo].[TBL_URUNLER](
[ID] [int] IDENTITY(1,1) NOT NULL,
[STOKBARKOD] [nvarchar](30) NULL,
[URUNKODU] [nchar](20) NULL,
[URUNADI] [nchar](50) NULL,
[GELENMIKTAR]  AS ([dbo].[PRO_GELENTOPLAM]([TBL_URUNLER].[URUNKODU])),
 CONSTRAINT [PK_TBL_URUNLER] PRIMARY KEY CLUSTERED 
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


SELECT 
       [URUNKODU]
      ,[URUNADI]      
      ,[GELENMIKTAR]
  FROM [dbo].[TBL_URUNLER]



GO
/****** Object:  UserDefinedFunction [dbo].[PRO_GELENTOPLAM]    Script Date: 9.04.2020 01:09:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION  [dbo].[PRO_GELENTOPLAM](@URUNKODU VARCHAR(30)) RETURNS INT
AS BEGIN
 DECLARE @MIKTAR INT
 SELECT
        @MIKTAR=SUM([MIKTAR])      
  FROM  [dbo].[TBL_SATISDETAY]
  WHERE [URUNKODU]=@URUNKODU
  SET @MIKTAR=ISNULL(@MIKTAR, 0)
--SELECT [dbo].[GELENTOPLAM] ('61') KULANIMI
RETURN @MIKTAR 


END






Hiç yorum yok