Forum
Üstadlarım yapmış olduğum projemin belli bir bölümün SQL kodlarını sizlerle paylaşıyorum.
Yapmak istediğim şu;
Genel Toplam Sütununa gelen değeri Taksit Sayısına Bölüp farklı bir Sütunda Sonucu Göstertmek İstiyorum?
Alt kısımdaki Sorguyu Eklediğimde hata alıyorum.
Taksit Sayısı Kolonu nchar(2), Parasal Değer Taşıyan Kolonlar decimal(26, 2)
(CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'G' THEN NETTUTAR ELSE 0 END) - (CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'C' THEN NETTUTAR ELSE 0 END) / dbo.TBL_KASA_HAREKET.TAKSITSAYISI AS VADETUTARI
Divide by zero error encountered.
SELECT
dbo.TBL_KASA_HAREKET.TAKSITSAYISI,
(CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'G' THEN NETTUTAR ELSE 0 END) AS GIRIS,
(CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'C' THEN NETTUTAR ELSE 0 END) AS CIKIS,
(CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'G' THEN NETTUTAR ELSE 0 END) - (CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'C' THEN NETTUTAR ELSE 0 END) AS BAKIYE,
dbo.TBL_KASA_HAREKET.PESINAT,
(CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'G' THEN NETTUTAR ELSE 0 END) - (CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'C' THEN NETTUTAR ELSE 0 END) - dbo.TBL_KASA_HAREKET.PESINAT AS GENELTOPLAM,
(CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'G' THEN NETTUTAR ELSE 0 END) - (CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'C' THEN NETTUTAR ELSE 0 END) / dbo.TBL_KASA_HAREKET.TAKSITSAYISI AS VADETUTARI
FROM
dbo.TBL_KASA INNER JOIN
dbo.TBL_KASA_HAREKET ON dbo.TBL_KASA.KODU = dbo.TBL_KASA_HAREKET.KASAKODU
Merhaba,
Aşağıdaki gibi deneyebilir misiniz.
ISNULL((CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'G' THEN NETTUTAR ELSE 0 END) -
(CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'C' THEN NETTUTAR ELSE 0 END) / NULLIF(
CAST(dbo.TBL_KASA_HAREKET.TAKSITSAYISI AS INT),0),0)
AS VADETUTARI
Örnekle ile ;
DECLARE @TAKSITSAYI NCHAR(2)='0',@TUTAR DECIMAL(26,2)='1500'
SELECT ISNULL(@TUTAR/NULLIF(CAST(@TAKSITSAYI AS INT),0),0) AS DOGRUSONUC
SELECT @TUTAR/CAST(@TAKSITSAYI AS INT) HATALISONUC
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
Merhaba,
Aşağıdaki gibi deneyebilir misiniz.
ISNULL((CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'G' THEN NETTUTAR ELSE 0 END) -
(CASE WHEN dbo.TBL_KASA_HAREKET.GCKODU = 'C' THEN NETTUTAR ELSE 0 END) / NULLIF(
CAST(dbo.TBL_KASA_HAREKET.TAKSITSAYISI AS INT),0),0)
AS VADETUTARIÖrnekle ile ;
DECLARE @TAKSITSAYI NCHAR(2)='0',@TUTAR DECIMAL(26,2)='1500'
SELECT ISNULL(@TUTAR/NULLIF(CAST(@TAKSITSAYI AS INT),0),0) AS DOGRUSONUC
SELECT @TUTAR/CAST(@TAKSITSAYI AS INT) HATALISONUC
Öncelikle Teşekkür ederim. Kodu denedim. Sonuç değişmedi. Ekran görüntüsü linktedir.
http://prntscr.com/pptzdl
Merhaba,
Kod bölme işlemi sırasında oluşan hatayı engelliyor , sonuçta taksit olunca bölme işlemi olacak değil mi ?
Taksit olmayan satırlarda bölme işlemi yok yada taksit yok ise 0 olacak , yada dilerseniz örnek verilerden oluşan temp tablo ekleyerek çözüme daha net gidebiliriz.
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
Kasa Hareket Tablomun yapısı
http://prntscr.com/ppu35k
Merhaba,
Rapordan nasıl bir sonuç bekliyorsunuz, sonuç halini excel de veya resim olarak paylaşabilir misiniz. Bu tür konularda tablonun resmi yerine direk bu kısma yazarsanız tablonun içine veri ekleyip sonucunu test etmek daha kolay olur.
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
TBL_KASA_HAREKET Tablomun SQL Kod Yapısı
CREATE TABLE [dbo].[TBL_KASA_HAREKET](
[ID] [int] IDENTITY(1,1) NOT NULL,
[KASAKODU] [varchar](10) NULL,
[FISNO] [varchar](50) NULL,
[MAKBUZNO] [varchar](50) NULL,
[ISLEMTURU] [int] NULL,
[TARIH] [date] NULL,
[GCKODU] [varchar](2) NULL,
[TIPI] [varchar](20) NULL,
[NETTUTAR] [decimal](26, 2) NULL,
[PESINAT] [decimal](26, 2) NULL,
[GENELTUTAR] [decimal](26, 2) NULL,
[TAKSITVARMI] [bit] NULL,
[TAKSITSAYISI] [nchar](2) NULL,
[TAKSITODEME] [bit] NULL,
[CARIKODU] [varchar](50) NULL,
[BILGI] [varchar](max) NULL,
[TAKSITACIKLAMA] [varchar](50) NULL,
[FIRMAID] [int] NULL,
[SAVEUSER] [int] NULL,
[SAVEDATE] [datetime] NULL,
[EDITUSER] [int] NULL,
[EDITDATE] [datetime] NULL,
CONSTRAINT [PK_TBL_KASA_HAREKET_1] 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]
GO
ALTER TABLE [dbo].[TBL_KASA_HAREKET] ADD CONSTRAINT [DF_TBL_KASA_HAREKET_TAKSITVARMI] DEFAULT ('False') FOR [TAKSITVARMI]
GO
ALTER TABLE [dbo].[TBL_KASA_HAREKET] ADD CONSTRAINT [DF_TBL_KASA_HAREKET_TAKSITSAYISI] DEFAULT ((0)) FOR [TAKSITSAYISI]
GO
ALTER TABLE [dbo].[TBL_KASA_HAREKET] ADD CONSTRAINT [DF_TBL_KASA_HAREKET_TAKSITODEME] DEFAULT ('False') FOR [TAKSITODEME]
GO
ALTER TABLE [dbo].[TBL_KASA_HAREKET] ADD CONSTRAINT [DF_TBL_KASA_HAREKET_SAVEUSER] DEFAULT ((-1)) FOR [SAVEUSER]
GO
ALTER TABLE [dbo].[TBL_KASA_HAREKET] ADD CONSTRAINT [DF_TBL_KASA_HAREKET_SAVEDATE] DEFAULT (getdate()) FOR [SAVEDATE]
GO
ALTER TABLE [dbo].[TBL_KASA_HAREKET] ADD CONSTRAINT [DF_TBL_KASA_HAREKET_EDITUSER] DEFAULT ((-1)) FOR [EDITUSER]
GO
ALTER TABLE [dbo].[TBL_KASA_HAREKET] ADD CONSTRAINT [DF_TBL_KASA_HAREKET_EDITDATE] DEFAULT (getdate()) FOR [EDITDATE]
GO
Muhammed bey,
Sorgudan nasıl bir sonuç çıkmasını bekliyorsunuz onunda resmini paylaşabilir misiniz. İlk sorunuzda bölme işlemi sorunu ortadan kalktı , sanırım istediğiniz başka bir şey daha var yada kurgulamada başka ek parametrik değer var.
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
İlk sorun halen devam ediyor. Verdiğim Create table kodlarını SQL'e yükleyiniz. Sonrasında ilk verdiğim SQL kodlarını ilgili tablodan veri çekerek İşlem yaptırabilirsiniz.
Merhaba,
Ben geçiçi tablo oluşturdum
USE tempdb
If(OBJECT_ID('tempdb..#HAREKET') Is Not Null)
Begin
Drop Table #HAREKET
End
CREATE TABLE #HAREKET
(
TAKSITSAYISI CHAR (2),
GIRIS DECIMAL(26,2),
CIKIS DECIMAL(26,2),
BAKIYE DECIMAL(26,2),
PESINAT DECIMAL(26,2),
GENELTOPLAM DECIMAL(26,2)
)
INSERT INTO #HAREKET
VALUES
('0',NULL,'0',NULL,NULL,NULL),
('0',NULL,'0',NULL,NULL,NULL),
('0','0',NULL,NULL,NULL,NULL),
('0',NULL,'0',NULL,NULL,NULL),
('0',NULL,'0',NULL,NULL,NULL),
('0','0',NULL,NULL,NULL,NULL),
('0','0',NULL,NULL,NULL,NULL),
('2','250','0',NULL,NULL,NULL),
('2','250','0',NULL,NULL,NULL)
SELECT *,ISNULL((ISNULL(GIRIS,0)-ISNULL(CIKIS,0))/NULLIF(CAST(TAKSITSAYISI AS INT),0),0) TUTAR
FROM #HAREKET
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
Merhaba,
Konu biraz danışmanlığa dönmüş sanki?
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Merhaba
Ben elimden geldiğince arkadaşın sorununa çözüm bulmaya çalıştım.
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]
Yok siz iyi niyetlisiniz ama soru soran kişide de aynı durum söz konusu olmalı. Danışmanlık ile çözülecek konular forum üzerinden çözülür ise forum amacına hizmet etmez. Bu durumda herkes her işini foruma sorar ve birilerinin onun için çalışmasını ister. Forumun mantığında siz yapabileceğiniz her şeyi yapıp takıldığınız "noktayı" sorarsınız komple projeyi değil.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Yok siz iyi niyetlisiniz ama soru soran kişide de aynı durum söz konusu olmalı. Danışmanlık ile çözülecek konular forum üzerinden çözülür ise forum amacına hizmet etmez. Bu durumda herkes her işini foruma sorar ve birilerinin onun için çalışmasını ister. Forumun mantığında siz yapabileceğiniz her şeyi yapıp takıldığınız "noktayı" sorarsınız komple projeyi değil.
Konu içeriğini baştan okumanızı tavsiye ederim. Herşey en başta belirtilmiştir.
Neyse ki sorunu hallettim.
Bende baştan okudum, soru süper başlamış, belirli bir bölümü olarak sonrası efsane. Eğer çözdü iseniz sorununuzun çözüldüğü bilgisini keşke paylaşa ve forumun üst bölümündeki "Çözüldü" şeklinde işaretleseydiniz keşke. Bu sayede başkaları da yararlanır.
Yok siz sorunu değerli forum üyemizin yardımları ile değil kendiniz çözdü iseniz yine nasıl çözdüğünüzü paylaşırsanız sektörde bundan yararlansın.
Teşekkürler.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************