gerçek stok ondalık haneden tam sayı yapma

Gönderen Konu: gerçek stok ondalık haneden tam sayı yapma  (Okunma sayısı 623 defa)

0 Üye ve 4 Ziyaretçi konuyu incelemekte.

Çevrimdışı hekimhan06

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 0
arkadaşlar kolay gelsin aşağıdaki malzeme kartında ondalık haneleri görüyorsunuz.0,66666667 koli stoku nasıl buna eşdeğer alt birime deng gelecek rakamları getirebiliriz.Bizim firmada ana birim koli alt birim adettir.ana birim adet olamaz bizde çünkü 3500 koli meyve suyu gelir eğer ana birim adet alt birim koli olsa 3500x27=94500 adet stok kesirli haneye düşmez biliyoruz bunu,bizim işimize gelmez her ıkide bir eline hesap makinası alıp kaç koli olduğunu hesaplamız lazım buda zaman kaybı.
bize 3500 koli 27 adetli meyve suyu fabrikadan geldi indirme esnasında 1 koli yere düşüp 13 adet patlıyor ve mal fire veriyor.Gerçek stokta 3499,52 koli bir stok oluşuyor,Bizim görmek istediğimiz stok şöyle olmalıdır.3499,14 olmalıdır.yani virgülden sonra alt birimin tam sayı görmek istiyoruz.yani son koliden kalan adet sayısı olsa çok güzel olur.Yani virgülden önce ana birim virgülden sonra alt birimden son koliden kalan sayı.

vedat_ozer

  • Ziyaretçi
Ynt: gerçek stok ondalık haneden tam sayı yapma
« Yanıtla #1 : 06.09.2018, 08:36 »
Selamlar,

           
         Normalde virgülden sonrası kalan tutar için arayüz ayarlarını kullanabilirsiniz , virgülden sonrası rakam göstermez. Fakat virgülden sonra kalan rakamın ilgili birim çarpımlarına girerek çözüme gidilir sanırım. Size tavsiyem bayinize başvurun çünkü sonuçta bunun için illaki veri tabanına Veri Ekleme,Veri Değiştirme gibi işlemler yapılacak.
       
         
       
       

vedat_ozer

  • Ziyaretçi
Ynt: gerçek stok ondalık haneden tam sayı yapma
« Yanıtla #2 : 06.09.2018, 10:09 »
Rakamın 3499,52 değilde 3499.5185 olması gerekmiyor mu çünkü ben hesaplama yaptım verdiğiniz rakamla birim adet kısmı :12,96 çıkıyor halbuki 13 çıkması lazım değil mi ?


Çevrimdışı hekimhan06

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 0
Ynt: gerçek stok ondalık haneden tam sayı yapma
« Yanıtla #3 : 06.09.2018, 20:44 »
+      3.500,00 koli
 *         27,00 adet
 ---------------
 +     94.500,00
 -         13,00 adet
 ---------------
 +     94.487,00
 /         27,00 adet
 ---------------
 +      3.499,52  hesap makinası ile yaptığım için yuvarlıyor
« Son Düzenleme: 06.09.2018, 22:04 Gönderen: hekimhan06 »

vedat_ozer

  • Ziyaretçi
Ynt: gerçek stok ondalık haneden tam sayı yapma
« Yanıtla #4 : 07.09.2018, 09:31 »
Geri bildiriminiz için teşekkür ederim.

Yuvarlamadan dolayı çıkıyor sanırım bir tane ktf sadece örnek olması açısından yazdım. Yuvarlamadan çıkan sorunu sanırım halletim.

Kod: [Seç]
IF EXISTS (SELECT * FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N'DBO.BIRIMCEVRIM') AND XTYPE IN (N'FN', N'IF', N'TF'))
DROP FUNCTION BIRIMCEVRIM
GO

CREATE FUNCTION DBO.BIRIMCEVRIM (@STOK DECIMAL(38,2),@CEVRIM INT)
RETURNS TABLE WITH SCHEMABINDING AS
RETURN

SELECT 'Ana Birim :'+CAST(floor(@STOK) AS varchar)+' İkinci Birim Adet:'+CAST(CAST(ROUND(((ROUND(@STOK,-1)-(@STOK)))*@CEVRIM,0) AS decimal(38,0)) AS varchar) [Sonuç]

Sizin verdiğiniz değere göre kodu çalışması ;

Kod: [Seç]
SELECT *,(SELECT SONUÇ FROM DBO.BIRIMCEVRIM ([Fiili Stok],[Çevrim])) [İstenen] FROM (
SELECT '3499.5185' [Fiili Stok],'27' [Çevrim] UNION ALL
SELECT '3499.52' ,'27') AS  TMP

Çevrimdışı hekimhan06

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 0
Ynt: gerçek stok ondalık haneden tam sayı yapma
« Yanıtla #5 : 07.09.2018, 22:26 »
abi alakanız için sağol peki dediğiniz kodu kullansam 3499,518 yerine 3499,14 bulabilirmiyim.

vedat_ozer

  • Ziyaretçi
Ynt: gerçek stok ondalık haneden tam sayı yapma
« Yanıtla #6 : 07.09.2018, 22:37 »
Ben fonksiyonu sadece çözümü sql en basit ve sade şeklinde yazdım. Siz istediğiniz rakamı parametreye girip çevrim bilgisini yazın virgülden sonrası rakamı alıp ilgili çevrim ile carpacaktir.

Zaten Günlük veya Genel stok toplamlarini ve birim cevrimleri ile kullanirsaniz sorgunun asıl ne ise yaradığını görürsünüz.