Selamunaleykum;
Bir Trigger veya Proc içinde Bir değişkeni Delphi 'deki
Copy('değişken',X,XX);
gibi bölebileceğim bir komut var mı SQLREF ten bulamadım...
Ve buna benzer komutların tümüne nasıl erişebilirim...
Ne işe yaradıklarını ve nasıl kullanıldıklarını nerden bulabilirim.
Hayırlı Çalışmalar...
Göksenin OK - İZMİR
INTERBASE TRIGGER ICINDE BIR STRINGIN PARÇALARINI BULMAK...
Selamlar,
Konu ile ilgili olarak (bu tür fonksiyonlar için) UDF'ler var (User Defined Function). Bu sayede benzeri işlemleri, bir DLL hazırlayıp Interbase/Firebird'ün kullanması sağlanıyor.
Aradığınız komutlar SUBSTRING gibi, TRIM gibi fonksiyonlardan bir kısmı (matematik fonksiyonları da dahil) ib_udf.dll'in içinde var.
Elinizde Interbase'e ait dokumanlar (Language Reference) var ise orada Interbase ile birlikte gelen standard UDF'leri nasıl tanımlayabileceğiniz anlatılıyor. Oraya bir göz atabilirsiniz.
Dokumanlardan alıntı,
Kolay gelsin.
Konu ile ilgili olarak (bu tür fonksiyonlar için) UDF'ler var (User Defined Function). Bu sayede benzeri işlemleri, bir DLL hazırlayıp Interbase/Firebird'ün kullanması sağlanıyor.
Aradığınız komutlar SUBSTRING gibi, TRIM gibi fonksiyonlardan bir kısmı (matematik fonksiyonları da dahil) ib_udf.dll'in içinde var.
Elinizde Interbase'e ait dokumanlar (Language Reference) var ise orada Interbase ile birlikte gelen standard UDF'leri nasıl tanımlayabileceğiniz anlatılıyor. Oraya bir göz atabilirsiniz.
Dokumanlardan alıntı,
/*****************************************
*
* s u b s t r
*
*****************************************
*
* Functional description:
* substr(s,m,n) returns the substring
* of s which starts at position m and
* ending at position n.
* Note: This function is NOT limited to
* receiving and returning only 80 characters,
* rather, it can use as long as 32767
* characters which is the limit on an
* INTERBASE character string.
* Change by Claudio Valderrama: when n>length(s),
* the result will be the original string instead
* of NULL as it was originally designed.
*
*****************************************/
DECLARE EXTERNAL FUNCTION substr
CSTRING(80), SMALLINT, SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';
Kolay gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
WHILE, FOR KOMUTLARI VE TEŞEKKÜR...
Selamunaleykum,
İkinizede çok teşekkür ederim.Allah razı olsun.
Her halde UDF işini anladım ve halletmiş durumdayım...
Ancak bir sorum daha olacak...SP ler ve TRIGGERlar içinde ;
IF THEN ELSE kalıbını kullana biliyorum ne var ki Delphi, diğer dillerde ve diğer veritabalarında (ORACLE,MSSQL) ortak olan operatorleride Interbase içinde kullanabiliyormuyuz
Bunlar mesala bir WHILE döngüsü bir FOR döngüsü ve en önemliside CURSOR oluşturabilirmiyiz...?
Yardımcı olursanız sevinirim.
Hayırlı çalışmalar.
Göksenin OK.
(Hicri yılın hayırlara vesile olması duası ile tüm grubun hicri yılını tebrik ederim.)
İkinizede çok teşekkür ederim.Allah razı olsun.
Her halde UDF işini anladım ve halletmiş durumdayım...
Ancak bir sorum daha olacak...SP ler ve TRIGGERlar içinde ;
IF THEN ELSE kalıbını kullana biliyorum ne var ki Delphi, diğer dillerde ve diğer veritabalarında (ORACLE,MSSQL) ortak olan operatorleride Interbase içinde kullanabiliyormuyuz
Bunlar mesala bir WHILE döngüsü bir FOR döngüsü ve en önemliside CURSOR oluşturabilirmiyiz...?
Yardımcı olursanız sevinirim.
Hayırlı çalışmalar.
Göksenin OK.
(Hicri yılın hayırlara vesile olması duası ile tüm grubun hicri yılını tebrik ederim.)
Ve Aleyküm selam,
Her bir SQL Tabanlı Veritabanın kendine has bir takım ek fonksiyon ve özellikleri var. Bu tür özellikleri o veri tabanına ait dokumantasyonda veya örneklerinde görebilirsiniz.
Ancak hepsinde belirli standardlar geçerlidir. Örneğin SQL92 standardı gibi. Bu standardlara uygun hazırlanmış her türlü veritabanı bu standardlara uygun her türlü veritabanlarında sorunsuz çalıştırılabilir.
Bu Delphi'nin değil, kullanılan veri tabanlarının özellikleridir.
Konu ile ilgili daha detaylı bilgiler için, forumun makaleler ve ipuçları bölümlerine bir göz atın size faydalı olabilecek çeşitli yazıları görebileceksiniz.
Oradaki yazılar, bu forumdaki aktif ve yardımsever insanların emeğiyle hazırlanmıştır ve Türkçedir
Kolay gelsin.
Her bir SQL Tabanlı Veritabanın kendine has bir takım ek fonksiyon ve özellikleri var. Bu tür özellikleri o veri tabanına ait dokumantasyonda veya örneklerinde görebilirsiniz.
Ancak hepsinde belirli standardlar geçerlidir. Örneğin SQL92 standardı gibi. Bu standardlara uygun hazırlanmış her türlü veritabanı bu standardlara uygun her türlü veritabanlarında sorunsuz çalıştırılabilir.
Bu Delphi'nin değil, kullanılan veri tabanlarının özellikleridir.
Konu ile ilgili daha detaylı bilgiler için, forumun makaleler ve ipuçları bölümlerine bir göz atın size faydalı olabilecek çeşitli yazıları görebileceksiniz.
Oradaki yazılar, bu forumdaki aktif ve yardımsever insanların emeğiyle hazırlanmıştır ve Türkçedir

Kolay gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
İlgine teşekkür ederim ama...
S.a.
İlgine teşekkür ederim Kuri_TLJ ne kadar kinayeli bir mesaj olsada...
FOR veya WHILE döngüleri sadece veri tabanlarının deil her dilde de kullanılan komutlar. Bunun farkındayım ben sadece sorumun anlaşılması için bu yolu seçtim çünkü aynı soruyu defalarca sordum.
Biriside ewet var veya hayır yok demedi için böyle sordum...
Her neyse burasını tartışma ortamına çevirmek son isteğim.
Makaleleri ve İp Uçlarınıda dolaştım for veya while örnekleryen SP veya bir Triggera rastlamadım.
Eğer bunular varsa bu örnekleri atabilirseniz sevinirim.
Hayırlı Çalışmalar.
Göksenin OK.
Sitede emeği geçenlerden de Allah razı olsun...
İlgine teşekkür ederim Kuri_TLJ ne kadar kinayeli bir mesaj olsada...
FOR veya WHILE döngüleri sadece veri tabanlarının deil her dilde de kullanılan komutlar. Bunun farkındayım ben sadece sorumun anlaşılması için bu yolu seçtim çünkü aynı soruyu defalarca sordum.
Biriside ewet var veya hayır yok demedi için böyle sordum...
Her neyse burasını tartışma ortamına çevirmek son isteğim.
Makaleleri ve İp Uçlarınıda dolaştım for veya while örnekleryen SP veya bir Triggera rastlamadım.
Eğer bunular varsa bu örnekleri atabilirseniz sevinirim.
Hayırlı Çalışmalar.
Göksenin OK.
Sitede emeği geçenlerden de Allah razı olsun...
Selamlar,
Öncelikle herhangi bir kinaye söz konusu değil belki üslubumdan kaynaklanmıştır bu sebeple farklı bir anlaşılma olmuş olabilir.
Aşağıdaki MS-SQL Server'da CURSOR tanımlama WHILE Döngüsü gibi örneklerin bulunduğu bir SP var orada incelerseniz sanırım yardımcı olur.
Biraz uzun ama idare edin. Devamında FOR SELECT ile İlgili bir şeyi ekledim.
FOR SELECT Kullanımına ait Interbase Örneği,
Kolay Gelsin.
Öncelikle herhangi bir kinaye söz konusu değil belki üslubumdan kaynaklanmıştır bu sebeple farklı bir anlaşılma olmuş olabilir.
Aşağıdaki MS-SQL Server'da CURSOR tanımlama WHILE Döngüsü gibi örneklerin bulunduğu bir SP var orada incelerseniz sanırım yardımcı olur.
Biraz uzun ama idare edin. Devamında FOR SELECT ile İlgili bir şeyi ekledim.
Kod: Tümünü seç
CREATE PROCEDURE ADNAN_KONTROL
AS
DECLARE @INT_MS_ID INTEGER , @INT_MS_BY_ID INTEGER , @DEF_GRUBU VARCHAR(1) , @YIRMI_GUN VARCHAR(1) , @RISK VARCHAR(1) , @MS_SIRKET_KOD VARCHAR(1)
DECLARE @DBL_BAKIYE NUMERIC(18,2)
DECLARE @DT_MH_TARIH DATETIME , @DBL_MH_BORC NUMERIC(18,2)
CREATE TABLE #TMP_RISK_KONTROL
(
TMP_DEF_GRUBU VARCHAR(1) ,
TMP_YIRMI_GUN_ASAN VARCHAR(1) ,
TMP_RISK VARCHAR(1),
TMP_MS_ID INTEGER
)
DECLARE CRS_RISK_KONTROL CURSOR FOR
SELECT DISTINCT SD_MUS_ID FROM MS_SIPARIS_DETAY WHERE ISNULL(SD_CIK_MIKTAR,0) < SD_MIKTAR
OPEN CRS_RISK_KONTROL
FETCH NEXT FROM CRS_RISK_KONTROL INTO @INT_MS_ID
WHILE (@@FETCH_STATUS = 0)
BEGIN
SELECT @INT_MS_BY_ID = (SELECT MS_BY_ID FROM GN_MUSTERILER WHERE MS_ID = @INT_MS_ID)
SELECT @MS_SIRKET_KOD = (SELECT MS_SIRKET_KOD FROM GN_MUSTERILER WHERE MS_ID = @INT_MS_ID)
IF (
ISNULL((SELECT SUM(ISNULL(TEM_KBL_TUT,0)) FROM IS_TEMINATLAR WITH (NOLOCK) WHERE TEM_MS_ID= @INT_MS_BY_ID AND TEM_TURU=1 AND (TEM_STATUS In (2,5)) AND ((TEM_SIRKET_TIP = @MS_SIRKET_KOD AND TEM_MEK_TIPI = 0) OR (TEM_MEK_TIPI = 1)) ),0)
+ ISNULL((SELECT SUM(ISNULL(KBL_TUTAR,0)) FROM IS_ITM_GMEN WITH (NOLOCK) WHERE TEM_TURU = 2 AND BY_ID = @INT_MS_BY_ID AND (STATUS In (2,5)) AND ((ITM_SIRKET_TIP = @MS_SIRKET_KOD AND ITM_MEK_TIPI = 0) OR (ITM_MEK_TIPI = 1))),0)
+ ISNULL((SELECT SUM(ISNULL(AKR_KLBLR_LIMIT,0)) FROM IS_ACIK_KREDILER_AKTIF WITH (NOLOCK) WHERE AKR_MSBY_ID = @INT_MS_BY_ID ),0)
+ ISNULL((SELECT SUM(ISNULL(YKR_MIKTAR,0)) FROM IS_YONETIM_KREDISI WITH (NOLOCK) WHERE YKR_MSBY_ID = @INT_MS_BY_ID),0)
+ ISNULL((SELECT SUM(ISNULL(BKR_ONY_MIKTAR,0)) FROM IS_BOLGE_KREDISI WITH (NOLOCK) WHERE BKR_MSBY_ID = @INT_MS_BY_ID),0)
+ ISNULL((SELECT SUM(ISNULL(KRD_MIKTAR,0)) FROM IS_KREDILER WITH (NOLOCK) WHERE KRD_MSBY_ID = @INT_MS_BY_ID),0)
)
-
(
ISNULL((SELECT SUM(ISNULL(CD_TUTAR,0)) FROM MS_CEK_DETAY WITH (NOLOCK) WHERE CD_SON_DURUM IN((SELECT CST_BANKA_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) ),(SELECT CST_PORTFOY_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) )) AND CD_ILK_MUST_ID= @INT_MS_ID),0)
+ ISNULL((SELECT SUM(ISNULL(STD_TUTAR,0)) FROM MS_SENET_DETAY WITH (NOLOCK) WHERE STD_SON_DURUM IN((SELECT CST_BANKA_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) ),(SELECT CST_PORTFOY_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) )) AND STD_MUST_ID= @INT_MS_ID),0)
+ ISNULL((SELECT SUM((ISNULL(SVD_TUTAR,0) / ISNULL(SVD_MIKTAR,0)) * (ISNULL(SVD_MIKTAR,0) - ISNULL(ADET,0)) ) FROM MS_BEKLEYEN_SEVKEMIRLERI_2 WITH (NOLOCK) WHERE ISNULL(SVD_MIKTAR,0) - ISNULL(ADET,0)>0 AND SVD_MUST_ID= @INT_MS_ID),0)
+ ISNULL((SELECT SUM(ISNULL(MH_BORC, 0) - ISNULL(MH_ALACAK, 0)) FROM MS_CARI_HAREKET WITH (NOLOCK) WHERE MH_SIRKET_KOD = @MS_SIRKET_KOD AND MH_CK_TIP = 1 AND MH_MUST_ID = @INT_MS_ID), 0)
-- ADNAN (AŞAĞISI YANLIŞTI, YUKARIDAKİ DOĞRU, BKZ. KREDİ RİSK PERFORMANS RAPORU
-- + ISNULL((SELECT SUM(ISNULL(CK_TOP_BORC,0)- ISNULL(CK_TOP_ALACAK,0)) FROM MS_CARI_KART WITH (NOLOCK) WHERE CK_MUST_ID= @INT_MS_ID),0)
+ ISNULL((SELECT (ISNULL((SELECT SUM(SVD_TUTAR) FROM MS_SEVKEMRI_DETAY WITH (NOLOCK) WHERE SVD_SIRKET_KOD = @MS_SIRKET_KOD AND SVD_MUST_ID = @INT_MS_ID),0) -
ISNULL((SELECT SUM(FB_NET_TUTAR) FROM MS_FATURA_BASLIK WITH (NOLOCK) WHERE FB_SIRKET_KOD = @MS_SIRKET_KOD AND FB_MUST_ID = @INT_MS_ID AND FB_PRN_FLAG > 0 AND FB_TIP = '2' AND ISNULL(FB_MAMUL,0) = 1),0)) +
ISNULL((SELECT SUM(FB_NET_TUTAR) FROM MS_FATURA_BASLIK WITH (NOLOCK) WHERE FB_SIRKET_KOD = @MS_SIRKET_KOD AND FB_MUST_ID = @INT_MS_ID AND FB_PRN_FLAG = 0 AND FB_TIP = '2' AND ISNULL(FB_MAMUL,0) = 0),0) ),0)
+ ISNULL((SELECT SUM(MSB.NET_TUTAR) FROM MS_BEKLEYEN_SIPARISLER_KREDI_RISK_PERFORMANS_RAPORU MSB WHERE MSB.SB_MUST_ID = @INT_MS_ID),0)
) <0
SELECT @RISK = '1'
ELSE
SELECT @RISK = '0'
-- DEF GRUBU KONTROLU
IF (SELECT COUNT(MS_GRUP) FROM GN_MUSTERILER WHERE ((MS_GRUP LIKE 'D%') OR (MS_GRUP LIKE 'E%') OR (MS_GRUP LIKE 'F%') )AND MS_ID = @INT_MS_ID) > 0
SELECT @DEF_GRUBU='1'
ELSE
SELECT @DEF_GRUBU = '0'
-- 20 GÜNÜ AŞAN BAKİYE KONTROLU
SELECT @DBL_BAKIYE = ISNULL((SELECT SUM(ISNULL(MH_BORC,0) - ISNULL(MH_ALACAK,0)) FROM MS_CARI_HAREKET WITH (NOLOCK) WHERE MH_MUST_ID = @INT_MS_ID AND MH_SIRKET_KOD = @MS_SIRKET_KOD),0)
-- SELECT @DBL_BAKIYE = (SELECT ISNULL(SUM(CK_TOP_BORC - CK_TOP_ALACAK),0) FROM MS_CARI_KART WHERE CK_MUST_ID =@INT_MS_ID)
DECLARE CRS_BAKIYE_KONTROL CURSOR FOR
SELECT MH_TARIH, MH_BORC FROM MS_CARI_HAREKET WHERE (ISNULL(MH_BORC,0) > 0) AND MH_MUST_ID = @INT_MS_ID ORDER BY MH_VADE DESC
OPEN CRS_BAKIYE_KONTROL
FETCH NEXT FROM CRS_BAKIYE_KONTROL INTO @DT_MH_TARIH , @DBL_MH_BORC
WHILE (@@FETCH_STATUS = 0) AND ( @DBL_BAKIYE >0)
BEGIN
IF @DBL_BAKIYE > @DBL_MH_BORC
SELECT @DBL_BAKIYE = @DBL_BAKIYE - @DBL_MH_BORC
FETCH NEXT FROM CRS_BAKIYE_KONTROL INTO @DT_MH_TARIH , @DBL_MH_BORC
END
CLOSE CRS_BAKIYE_KONTROL
DEALLOCATE CRS_BAKIYE_KONTROL
IF (@DBL_BAKIYE <= 0 ) AND (GETDATE() - @DT_MH_TARIH >20 )
SELECT @YIRMI_GUN = '1'
ELSE
SELECT @YIRMI_GUN = '0'
INSERT INTO #TMP_RISK_KONTROL ( TMP_DEF_GRUBU , TMP_YIRMI_GUN_ASAN , TMP_RISK , TMP_MS_ID )
VALUES(@DEF_GRUBU , @YIRMI_GUN , @RISK, @INT_MS_ID)
FETCH NEXT FROM CRS_RISK_KONTROL INTO @INT_MS_ID
END
CLOSE CRS_RISK_KONTROL
DEALLOCATE CRS_RISK_KONTROL
-- BURADA TEMP TABLO BİTTİ
SELECT SB_SIPNO , MS_KOD , MS_UNVAN1, MS_ID , SB_ID,
SUM((SK_BIRIM_FIYAT * SD_MIKTAR ) + ((SK_BIRIM_FIYAT * SD_MIKTAR ) * (SD_KDV/100))) SIPARIS_TUTARI ,
SUM((SK_BIRIM_FIYAT * ISNULL(SD_CIK_MIKTAR,0)) + ((SK_BIRIM_FIYAT * ISNULL(SD_CIK_MIKTAR,0)) * (SD_KDV/100))) CIKILAN_TUTAR ,
SUM((SK_BIRIM_FIYAT * (SD_MIKTAR - ISNULL(SD_CIK_MIKTAR,0))) + ((SK_BIRIM_FIYAT * (SD_MIKTAR - ISNULL(SD_CIK_MIKTAR,0))) * (SD_KDV/100))) BEKLEYEN_TUTAR ,
ACIKLAMA = CASE
WHEN( SELECT TMP_RISK FROM #TMP_RISK_KONTROL WHERE TMP_MS_ID = MS_ID ) = 1 THEN 'RİSK AŞIMI '
ELSE ''
END
,
RISK_AŞIMI = CASE
WHEN(
(
ISNULL((SELECT SUM(ISNULL(TEM_KBL_TUT,0)) FROM IS_TEMINATLAR WITH (NOLOCK) WHERE TEM_MS_ID= MS_BY_ID AND TEM_TURU=1 AND (TEM_STATUS In (2,5)) AND ((TEM_SIRKET_TIP = MS_SIRKET_KOD AND TEM_MEK_TIPI = 0) OR (TEM_MEK_TIPI = 1)) ),0)
+ ISNULL((SELECT SUM(ISNULL(KBL_TUTAR,0)) FROM IS_ITM_GMEN WITH (NOLOCK) WHERE TEM_TURU = 2 AND BY_ID = MS_BY_ID AND (STATUS In (2,5)) AND ((ITM_SIRKET_TIP = MS_SIRKET_KOD AND ITM_MEK_TIPI = 0) OR (ITM_MEK_TIPI = 1))),0)
+ ISNULL((SELECT SUM(ISNULL(AKR_KLBLR_LIMIT,0)) FROM IS_ACIK_KREDILER_AKTIF WITH (NOLOCK) WHERE AKR_MSBY_ID = MS_BY_ID ),0)
+ ISNULL((SELECT SUM(ISNULL(YKR_MIKTAR,0)) FROM IS_YONETIM_KREDISI WITH (NOLOCK) WHERE YKR_MSBY_ID = MS_BY_ID),0)
+ ISNULL((SELECT SUM(ISNULL(BKR_ONY_MIKTAR,0)) FROM IS_BOLGE_KREDISI WITH (NOLOCK) WHERE BKR_MSBY_ID = MS_BY_ID),0)
+ ISNULL((SELECT SUM(ISNULL(KRD_MIKTAR,0)) FROM IS_KREDILER WITH (NOLOCK) WHERE KRD_MSBY_ID = MS_BY_ID),0)
)
-
(
ISNULL((SELECT SUM(ISNULL(CD_TUTAR,0)) FROM MS_CEK_DETAY WITH (NOLOCK) WHERE CD_SON_DURUM IN((SELECT CST_BANKA_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) ),(SELECT CST_PORTFOY_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) )) AND CD_ILK_MUST_ID= MS_ID),0)
+ ISNULL((SELECT SUM(ISNULL(STD_TUTAR,0)) FROM MS_SENET_DETAY WITH (NOLOCK) WHERE STD_SON_DURUM IN((SELECT CST_BANKA_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) ),(SELECT CST_PORTFOY_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) )) AND STD_MUST_ID= MS_ID),0)
+ ISNULL((SELECT SUM((ISNULL(SVD_TUTAR,0) / ISNULL(SVD_MIKTAR,0)) * (ISNULL(SVD_MIKTAR,0) - ISNULL(ADET,0)) ) FROM MS_BEKLEYEN_SEVKEMIRLERI_2 WITH (NOLOCK) WHERE ISNULL(SVD_MIKTAR,0) - ISNULL(ADET,0)>0 AND SVD_MUST_ID= MS_ID),0)
+ ISNULL((SELECT SUM(ISNULL(MH_BORC, 0) - ISNULL(MH_ALACAK, 0)) FROM MS_CARI_HAREKET WITH (NOLOCK) WHERE MH_SIRKET_KOD = MS_SIRKET_KOD AND MH_CK_TIP = 1 AND MH_MUST_ID = MS_ID), 0)
--+ ISNULL((SELECT SUM(ISNULL(CK_TOP_BORC,0)- ISNULL(CK_TOP_ALACAK,0)) FROM MS_CARI_KART WITH (NOLOCK) WHERE CK_MUST_ID= MS_ID),0)
+ ISNULL((SELECT (ISNULL((SELECT SUM(SVD_TUTAR) FROM MS_SEVKEMRI_DETAY WITH (NOLOCK) WHERE SVD_SIRKET_KOD = MS_SIRKET_KOD AND SVD_MUST_ID = MS_ID),0) -
ISNULL((SELECT SUM(FB_NET_TUTAR) FROM MS_FATURA_BASLIK WITH (NOLOCK) WHERE FB_SIRKET_KOD = MS_SIRKET_KOD AND FB_MUST_ID = MS_ID AND FB_PRN_FLAG > 0 AND FB_TIP = '2' AND ISNULL(FB_MAMUL,0) = 1),0)) +
ISNULL((SELECT SUM(FB_NET_TUTAR) FROM MS_FATURA_BASLIK WITH (NOLOCK) WHERE FB_SIRKET_KOD = MS_SIRKET_KOD AND FB_MUST_ID = MS_ID AND FB_PRN_FLAG = 0 AND FB_TIP = '2' AND ISNULL(FB_MAMUL,0) = 0),0) ),0)
+ ISNULL((SELECT SUM(MSB.NET_TUTAR) FROM MS_BEKLEYEN_SIPARISLER_KREDI_RISK_PERFORMANS_RAPORU MSB WHERE MSB.SB_MUST_ID = MS_ID),0)
) ) < 0 THEN
((
ISNULL((SELECT SUM(ISNULL(TEM_KBL_TUT,0)) FROM IS_TEMINATLAR WITH (NOLOCK) WHERE TEM_MS_ID= MS_BY_ID AND TEM_TURU=1 AND (TEM_STATUS In (2,5)) AND ((TEM_SIRKET_TIP = MS_SIRKET_KOD AND TEM_MEK_TIPI = 0) OR (TEM_MEK_TIPI = 1)) ),0)
+ ISNULL((SELECT SUM(ISNULL(KBL_TUTAR,0)) FROM IS_ITM_GMEN WITH (NOLOCK) WHERE TEM_TURU = 2 AND BY_ID = MS_BY_ID AND (STATUS In (2,5)) AND ((ITM_SIRKET_TIP = MS_SIRKET_KOD AND ITM_MEK_TIPI = 0) OR (ITM_MEK_TIPI = 1))),0)
+ ISNULL((SELECT SUM(ISNULL(AKR_KLBLR_LIMIT,0)) FROM IS_ACIK_KREDILER_AKTIF WITH (NOLOCK) WHERE AKR_MSBY_ID = MS_BY_ID ),0)
+ ISNULL((SELECT SUM(ISNULL(YKR_MIKTAR,0)) FROM IS_YONETIM_KREDISI WITH (NOLOCK) WHERE YKR_MSBY_ID = MS_BY_ID),0)
+ ISNULL((SELECT SUM(ISNULL(BKR_ONY_MIKTAR,0)) FROM IS_BOLGE_KREDISI WITH (NOLOCK) WHERE BKR_MSBY_ID = MS_BY_ID),0)
+ ISNULL((SELECT SUM(ISNULL(KRD_MIKTAR,0)) FROM IS_KREDILER WITH (NOLOCK) WHERE KRD_MSBY_ID = MS_BY_ID),0)
)
-
(
ISNULL((SELECT SUM(ISNULL(CD_TUTAR,0)) FROM MS_CEK_DETAY WITH (NOLOCK) WHERE CD_SON_DURUM IN((SELECT CST_BANKA_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) ),(SELECT CST_PORTFOY_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) )) AND CD_ILK_MUST_ID= MS_ID),0)
+ ISNULL((SELECT SUM(ISNULL(STD_TUTAR,0)) FROM MS_SENET_DETAY WITH (NOLOCK) WHERE STD_SON_DURUM IN((SELECT CST_BANKA_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) ),(SELECT CST_PORTFOY_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) )) AND STD_MUST_ID= MS_ID),0)
+ ISNULL((SELECT SUM((ISNULL(SVD_TUTAR,0) / ISNULL(SVD_MIKTAR,0)) * (ISNULL(SVD_MIKTAR,0) - ISNULL(ADET,0)) ) FROM MS_BEKLEYEN_SEVKEMIRLERI_2 WITH (NOLOCK) WHERE ISNULL(SVD_MIKTAR,0) - ISNULL(ADET,0)>0 AND SVD_MUST_ID= MS_ID),0)
+ ISNULL((SELECT SUM(ISNULL(MH_BORC, 0) - ISNULL(MH_ALACAK, 0)) FROM MS_CARI_HAREKET WITH (NOLOCK) WHERE MH_SIRKET_KOD = MS_SIRKET_KOD AND MH_CK_TIP = 1 AND MH_MUST_ID = MS_ID), 0)
--+ ISNULL((SELECT SUM(ISNULL(CK_TOP_BORC,0)- ISNULL(CK_TOP_ALACAK,0)) FROM MS_CARI_KART WITH (NOLOCK) WHERE CK_MUST_ID= MS_ID),0)
+ ISNULL((SELECT (ISNULL((SELECT SUM(SVD_TUTAR) FROM MS_SEVKEMRI_DETAY WITH (NOLOCK) WHERE SVD_SIRKET_KOD = MS_SIRKET_KOD AND SVD_MUST_ID = MS_ID),0) -
ISNULL((SELECT SUM(FB_NET_TUTAR) FROM MS_FATURA_BASLIK WITH (NOLOCK) WHERE FB_SIRKET_KOD = MS_SIRKET_KOD AND FB_MUST_ID = MS_ID AND FB_PRN_FLAG > 0 AND FB_TIP = '2' AND ISNULL(FB_MAMUL,0) = 1),0)) +
ISNULL((SELECT SUM(FB_NET_TUTAR) FROM MS_FATURA_BASLIK WITH (NOLOCK) WHERE FB_SIRKET_KOD = MS_SIRKET_KOD AND FB_MUST_ID = MS_ID AND FB_PRN_FLAG = 0 AND FB_TIP = '2' AND ISNULL(FB_MAMUL,0) = 0),0) ),0)
+ ISNULL((SELECT SUM(MSB.NET_TUTAR) FROM MS_BEKLEYEN_SIPARISLER_KREDI_RISK_PERFORMANS_RAPORU MSB WHERE MSB.SB_MUST_ID = MS_ID),0)
)) * (-1)
ELSE 0
END
,
(ISNULL((SELECT KLT_ACIKLAMA
FROM MS_KILIT_DETAY , MS_KILIT
WHERE MKD_ONAY = 1
AND MKD_KLT_ID = 1
AND KLT_ID = MKD_KLT_ID
AND MKD_MS_ID = MS_ID ),'')
+ ' '+
ISNULL((SELECT KLT_ACIKLAMA
FROM MS_KILIT_DETAY , MS_KILIT
WHERE MKD_ONAY = 1
AND MKD_KLT_ID = 7
AND KLT_ID = MKD_KLT_ID
AND MKD_MS_ID = MS_ID ),'')
+ ' '+
ISNULL((SELECT KLT_ACIKLAMA
FROM MS_KILIT_DETAY , MS_KILIT
WHERE MKD_ONAY = 1
AND MKD_KLT_ID = 8
AND KLT_ID = MKD_KLT_ID
AND MKD_MS_ID = 1 ),'')
+ ' '+
ISNULL((SELECT KLT_ACIKLAMA
FROM MS_KILIT_DETAY , MS_KILIT
WHERE MKD_ONAY = 1
AND MKD_KLT_ID = 9
AND KLT_ID = MKD_KLT_ID
AND MKD_MS_ID = MS_ID ),'')
+ ' '+
ISNULL((SELECT KLT_ACIKLAMA
FROM MS_KILIT_DETAY , MS_KILIT
WHERE MKD_ONAY = 1
AND MKD_KLT_ID = 10
AND KLT_ID = MKD_KLT_ID
AND MKD_MS_ID = MS_ID ),'')
+ ' '+
ISNULL((SELECT KLT_ACIKLAMA
FROM MS_KILIT_DETAY , MS_KILIT
WHERE MKD_ONAY = 1
AND MKD_KLT_ID = 11
AND KLT_ID = MKD_KLT_ID
AND MKD_MS_ID = MS_ID ),'')
+ ' '+
ISNULL((SELECT KLT_ACIKLAMA
FROM MS_KILIT_DETAY , MS_KILIT
WHERE MKD_ONAY = 1
AND MKD_KLT_ID = 12
AND KLT_ID = MKD_KLT_ID
AND MKD_MS_ID = MS_ID ),'')
+ ' '+
ISNULL((SELECT KLT_ACIKLAMA
FROM MS_KILIT_DETAY , MS_KILIT
WHERE MKD_ONAY = 1
AND MKD_KLT_ID = 14
AND KLT_ID = MKD_KLT_ID
AND MKD_MS_ID = MS_ID ),'')) KILIT_DETAY ,
ONAY = CASE
WHEN( SELECT COUNT(*) FROM #TMP_RISK_KONTROL WHERE TMP_MS_ID = MS_ID AND ((TMP_RISK = 1) OR (TMP_DEF_GRUBU = 1) OR (TMP_YIRMI_GUN_ASAN = 1) )
) > 0 THEN 0
ELSE 1
END
,
CONVERT(CHAR(150),'') ONAY_ACIKLAMASI ,
KARSILIKSIZ = CASE
WHEN ISNULL((SELECT SUM(ISNULL(MH_BORC,0) - ISNULL(MH_ALACAK,0)) FROM MS_CARI_HAREKET WHERE MH_CK_TIP = 2 AND MH_MUST_ID = MS_ID),0) > 0 THEN
ISNULL((SELECT SUM(ISNULL(MH_BORC,0) - ISNULL(MH_ALACAK,0)) FROM MS_CARI_HAREKET WHERE MH_CK_TIP = 2 AND MH_MUST_ID = MS_ID) ,0)
ELSE
0
END
,
PROTESTO = CASE
WHEN ISNULL((SELECT SUM(ISNULL(MH_BORC,0) - ISNULL(MH_ALACAK,0)) FROM MS_CARI_HAREKET WHERE MH_CK_TIP = 3 AND MH_MUST_ID = MS_ID),0) >0 THEN
ISNULL((SELECT SUM(ISNULL(MH_BORC,0) - ISNULL(MH_ALACAK,0)) FROM MS_CARI_HAREKET WHERE MH_CK_TIP = 3 AND MH_MUST_ID = MS_ID),0)
ELSE
0
END
,
AVUKAT= CASE
WHEN ISNULL((SELECT SUM(ISNULL(MH_BORC,0) - ISNULL(MH_ALACAK,0)) FROM MS_CARI_HAREKET WHERE MH_CK_TIP = 4 AND MH_MUST_ID = MS_ID),0) >0 THEN
ISNULL((SELECT SUM(ISNULL(MH_BORC,0) - ISNULL(MH_ALACAK,0)) FROM MS_CARI_HAREKET WHERE MH_CK_TIP = 4 AND MH_MUST_ID = MS_ID) ,0)
ELSE
0
END
,
DEF_RISK = CASE
WHEN ( (SELECT TMP_DEF_GRUBU FROM #TMP_RISK_KONTROL WHERE TMP_MS_ID = MS_ID) = '1' ) AND ((SELECT TMP_YIRMI_GUN_ASAN FROM #TMP_RISK_KONTROL WHERE TMP_MS_ID = MS_ID) = '1' ) THEN
'DEF GRUBU VE YIRMI GUNU AŞAN BAKIYESI VAR'
WHEN ( (SELECT TMP_DEF_GRUBU FROM #TMP_RISK_KONTROL WHERE TMP_MS_ID = MS_ID) = '0' ) AND ((SELECT TMP_YIRMI_GUN_ASAN FROM #TMP_RISK_KONTROL WHERE TMP_MS_ID = MS_ID) = '1' ) THEN
'YIRMI GUNU AŞAN BAKIYESI VAR'
WHEN ( (SELECT TMP_DEF_GRUBU FROM #TMP_RISK_KONTROL WHERE TMP_MS_ID = MS_ID) = '1' ) AND ((SELECT TMP_YIRMI_GUN_ASAN FROM #TMP_RISK_KONTROL WHERE TMP_MS_ID = MS_ID) = '0' ) THEN
'DEF GURUBU'
WHEN ( (SELECT TMP_DEF_GRUBU FROM #TMP_RISK_KONTROL WHERE TMP_MS_ID = MS_ID) = '0' ) AND ((SELECT TMP_YIRMI_GUN_ASAN FROM #TMP_RISK_KONTROL WHERE TMP_MS_ID = MS_ID) = '0' ) THEN
' '
END
FROM MS_SIPARIS_DETAY WITH(NOLOCK) ,
MS_SIPARIS_BASLIK WITH(NOLOCK),
GN_MUSTERILER WITH(NOLOCK)
WHERE ISNULL(SB_SEVK_EDILDI,0) = 0
AND ISNULL(SD_CIK_MIKTAR,0) < SD_MIKTAR
AND SD_SB_ID = SB_ID
AND MS_ID = SB_MUST_ID
AND ISNULL(SB_SEVK_EDILEBILIR,0) = 0
GROUP BY SD_SB_ID , SB_SIPNO,MS_KOD , MS_UNVAN1 , MS_BY_ID , MS_SIRKET_KOD , MS_ID , SB_ID
--BTM SELECT SUM(ISNULL(TEM_KBL_TUT,0)) FROM IS_TEMINATLAR WITH (NOLOCK) WHERE TEM_MS_ID= MS_BY_ID AND TEM_TURU=1 AND (TEM_STATUS In (2,5)) AND ((TEM_SIRKET_TIP = MS_SIRKET_KOD' AND TEM_MEK_TIPI = 0) OR (TEM_MEK_TIPI = 1))
--ITM SELECT SUM(ISNULL(KBL_TUTAR,0)) FROM IS_ITM_GMEN WITH (NOLOCK) WHERE BY_ID = MS_BY_ID AND TEM_TURU = 2 AND (STATUS In (2,5)) AND ((ITM_SIRKET_TIP = MS_SIRKET_KOD AND ITM_MEK_TIPI = 0) OR (ITM_MEK_TIPI = 1))
-- AÇIK KREDİ SELECT SUM(ISNULL(AKR_KLBLR_LIMIT,0)) FROM IS_ACIK_KREDILER_AKTIF WITH (NOLOCK) WHERE AKR_MSBY_ID = MS_BY_ID
-- YONETİM KREDİSİ SELECT SUM(ISNULL(YKR_MIKTAR,0)) FROM IS_YONETIM_KREDISI WITH (NOLOCK) WHERE YKR_MSBY_ID = MS_BY_ID
-- BOLGE_KREDISI SELECT SUM(ISNULL(BKR_ONY_MIKTAR,0)) FROM IS_BOLGE_KREDISI WITH (NOLOCK) WHERE BKR_MSBY_ID = MS_BY_ID
-- DIGER KREDILER SELECT SUM(ISNULL(KRD_MIKTAR,0)) FROM IS_KREDILER WITH (NOLOCK) WHERE KRD_MSBY_ID = MS_BY_ID
-- TAHSİL EDİLMEMİŞ ÇEK SELECT SUM(ISNULL(CD_TUTAR,0)) FROM MS_CEK_DETAY WITH (NOLOCK) WHERE CD_SON_DURUM IN((SELECT CST_BANKA_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) ),(SELECT CST_PORTFOY_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) )) AND CD_ILK_MUST_ID=MS_ID
-- TAHSİL EDİLMEMİŞ SENET SELECT SUM(ISNULL(STD_TUTAR,0)) FROM MS_SENET_DETAY WITH (NOLOCK) WHERE STD_SON_DURUM IN((SELECT CST_BANKA_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) ),(SELECT CST_PORTFOY_DURUM_ID FROM MS_CS_TANIMLARI WITH (NOLOCK) )) AND STD_MUST_ID= MS_ID
-- BEKLEYEN SİPARİŞ SELECT SUM(ISNULLl(NET_TUTAR,0)) FROM MS_BEKLEYEN_SIPARISLER_KREDI_RISK_PERFORMANS_RAPORU WHERE SB_MUST_ID= MS_ID
-- BEKLEYEN SEVK_EMRI SELECT SUM((ISNULL(SVD_TUTAR,0) / ISNULL(SVD_MIKTAR,0)) * (ISNULL(SVD_MIKTAR,0) - ISNULL(ADET,0)) ) FROM MS_BEKLEYEN_SEVKEMIRLERI_2 WHERE ISNULL(SVD_MIKTAR,0) - ISNULL(ADET,0)>0 AND SVD_MUST_ID= MS_ID
-- FATURASI KESILMEMIS IRSALIYE SELECT (ISNULL((SELECT SUM(SVD_TUTAR) FROM MS_SEVKEMRI_DETAY WITH (NOLOCK) WHERE SVD_SIRKET_KOD = MS_SIRKET_KOD AND SVD_MUST_ID = MS_ID),0) -
-- ISNULL((SELECT SUM(FB_NET_TUTAR) FROM MS_FATURA_BASLIK WITH (NOLOCK) WHERE FB_SIRKET_KOD = MS_SIRKET_KOD AND FB_MUST_ID = MS_ID AND FB_PRN_FLAG > 0 AND FB_TIP = '2' AND ISNULL(FB_MAMUL,0) = 1),0)) +
-- ISNULL((SELECT SUM(FB_NET_TUTAR) FROM MS_FATURA_BASLIK WITH (NOLOCK) WHERE FB_SIRKET_KOD = MS_SIRKET_KOD AND FB_MUST_ID = MS_ID AND FB_PRN_FLAG = 0 AND FB_TIP = '2' AND ISNULL(FB_MAMUL,0) = 0),0)
--AÇIK HESAP select SUM(Isnull(CK_TOP_BORC,0)-Isnull(CK_TOP_ALACAK,0)) from MS_CARI_KART where CK_MUST_ID='+ms_Id
DROP TABLE #TMP_RISK_KONTROL
GO
FOR SELECT Kullanımına ait Interbase Örneği,
Kod: Tümünü seç
SET TERM ^^ ;
CREATE PROCEDURE STP_COKLU_STOK_DEGERLEMESI (VAR_B_TAR TimeStamp, VAR_S_TAR TimeStamp, VAR_BASE_DATE TimeStamp, VAR_KLN_ID Integer) AS
DECLARE VARIABLE INT_TMP_ID INTEGER ;
DECLARE VARIABLE INT_STK_ID INTEGER ;
DECLARE VARIABLE INT_MIKTAR INTEGER ;
DECLARE VARIABLE INT_KLN_ID INTEGER ;
DECLARE VARIABLE DBL_FIFO DOUBLE PRECISION ;
DECLARE VARIABLE DBL_LIFO DOUBLE PRECISION ;
DECLARE VARIABLE DBL_AO DOUBLE PRECISION ;
BEGIN
FOR SELECT TMP_ID, TMP_STK_ID
FROM TMP_STOK_DEGERLEMESI
WHERE TMP_KLN_ID = :VAR_KLN_ID
INTO :INT_TMP_ID, :INT_STK_ID
DO
BEGIN
EXECUTE PROCEDURE STP_STOK_DEGERLEMESI :INT_STK_ID, :VAR_B_TAR, :VAR_S_TAR, :VAR_BASE_DATE RETURNING_VALUES :INT_MIKTAR, :DBL_FIFO, :DBL_LIFO, :DBL_AO ;
UPDATE TMP_STOK_DEGERLEMESI
SET TMP_MIKTAR = :INT_MIKTAR,
TMP_FIFO = :DBL_FIFO,
TMP_LIFO = :DBL_LIFO,
TMP_AO = :DBL_AO,
TMP_KLN_ID = :VAR_KLN_ID
WHERE TMP_ID = :INT_TMP_ID ;
END
END
^^
SET TERM ; ^^
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/