Sayfayı Yazdır | Pencereyi Kapat

Sql Sorgu

Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: SQL
Forum Adı: SQL Veri Tabanı İşlemleri
Forum Tanımlaması: Table,View,Trigger,SELECT,UPDATE,INSERT...
URL: http://www.erpne.org/forum_posts.asp?TID=1560
Tarih: 22 Ağustos 2025 Saat 18:55
Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com


Konu: Sql Sorgu
Mesajı Yazan: gullpasha
Konu: Sql Sorgu
Mesaj Tarihi: 21 Nisan 2009 Saat 13:30

Merhaba Arkadaslar,

Benim bir sorum olacak.

Mamul_Kodu  Ham_kodu

     A                  B
     B                  C
     C                  D
 
seklinde olan ürün agacini
 
Mamul_Kodu   Ham_kodu1    Ham_kodu2   Ham_kodu3
     A                  B                    C                  D
 
seklinde nasil sorguda getirebilirim?
çok ugrastim ama bir türlü getiremedim.
yardimlarinizi bekliyorum.
Görüsmek üzere, sevgiyle..



Cevaplar:
Mesajı Yazan: Conari
Mesaj Tarihi: 21 Nisan 2009 Saat 18:00
select
mamul kodu,
case when OPNO=001 then HAM_KODU end,
case when OPNO=002 then HAM_KODU end,
case when OPNO=003 then HAM_KODU end
from.......
 


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: gullpasha
Mesaj Tarihi: 22 Nisan 2009 Saat 09:37
select
mamul kodu,
case when OPNO=001 then HAM_KODU end as HAM_KODU1,
case when OPNO=002 then HAM_KODU end as HAM_KODU2,
case when OPNO=003 then HAM_KODU end as HAM_KODU3
from.......
üstad burada C veya D hammaddeleri ayni zamanda A'ya bagli olsaydi dedigini çalistirabilirdim. ama su anda C ve D Hammaddeleri A'ya bagli olmadigi için OPNO ya göre çagirmada C ve D gelmeyecek.
 
Sanirim bu gibi sorgular fonksiyon yazmayla gideriliyor fakat fonksiyon yazamiyorum ben Sql'de üstadCry.
 
 


Mesajı Yazan: Conari
Mesaj Tarihi: 22 Nisan 2009 Saat 09:56
O zaman ne istedigini anlamadim üstadim.
ben reçeteyi yan yana yazdirmak istiyorsun zannettim.
Sen Reçetede olan olmayan tüm ürünleri mi yazmak istiyorsun?
Ham_kodu3-4-5...100 e kadar gider.
 
Galiba anladim benim istedigimi istiyorsun. ben YM ler hariç istiyordum bunu
LOL


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: gullpasha
Mesaj Tarihi: 22 Nisan 2009 Saat 12:02

Üstad,

Bu tablo aslinda tblstokurm tablosu ve Ürünlerimiz çok seviyeli reçetelerden olusuyor.
 
Örnekten gidersek, C stogunun A stogu ile bir baglantisi yok, sadece B stogunun hammaddesi. Ayni sekilde D stogunun A ve B stogu ile ilgisi yok, sadece C stogunun hammaddesi.
Bu sekilde A ile C ve D stoklari arasinda baglanti kuramiyorum. Sanirim bir fonksiyon yazilarak bu gibi istekere cevap verilen çözümler üretilebiliyormus ama SQL de fonksiyon yazma olayina girebilmis degilim.
 
bir türlü yapamadim bunu gitti :((


Mesajı Yazan: gullpasha
Mesaj Tarihi: 22 Nisan 2009 Saat 13:58
Üstad bi arkadas bu sorun için fonksiyon yazdi.
 

alter function [dbo].[HAMKOD] (@MAMULKODU nvarchar(36), @YTORY NVARCHAR(5))

returns nvarchar(36)

as

begin

declare @sonuc nvarchar(50)

IF @YTORY = 'YT'

BEGIN

SELECT @sonuc = HAM_KODU FROM TBLSTOKURM WHERE MAMUL_KODU = @MAMULKODU AND HAM_KODU LIKE 'YT%'

END

ELSE

BEGIN

SELECT @sonuc = HAM_KODU FROM TBLSTOKURM WHERE MAMUL_KODU = @MAMULKODU AND HAM_KODU LIKE 'Y%'

END

return (@sonuc)

end

GO

 
fonksiyon bu sekilde, benim ihtiyacimi tamamen karsiliyor.


Mesajı Yazan: gullpasha
Mesaj Tarihi: 22 Nisan 2009 Saat 14:02

SELECT MAMUL_KODU,[dbo].[HAMKOD] (MAMUL_KODU,'YT'),[dbo].[HAMKOD] (dbo.HAMKOD(MAMUL_KODU,'YT'),'Y') FROM TBLSTOKURM WHERE MAMUL_KODU LIKE '6%'

-sorgusunu çektigim zaman 1. sütunda mamul kodunu, 2. sütunda mamul kodu 6 ile baslayan ürünlerin YT ile baslayan ham_kodunu getiriyor, ve 3. sütunda mamul kodu YT ile baslayan ürünlerin Y ile baslayan ham_kodunu getiriyor. bu vesile ile diger raporu da düzgün bir sekilde güncelleyebilirim.
 



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 11.10 - http://www.webwizforums.com
Copyright ©2001-2017 Web Wiz Ltd. - https://www.webwiz.net