MAMUL KODU HAMMEDDE KODU ADEDI
A03-001 A01-222 1
A03-001 A02-333 2
A03-001 22-2333 3
A03-001 332-EAA 4
A03-001 B02-333 5
Şu üsteki durum gibi MAMUL kodları tekrar edip hangi hammaddedn oluştukları kolayca bir sql ile bulunabiliyor ama.....
MAMUL KODU HAMMADDE KODU ADEDI
a01-222 a3-333 2
a91-222 a04-555 1
Hem Mamül kodları kendisini oluşturan hammadde kodlarıda ayrıca Mamul kodu olup kendine ait hammadde kodları bulunmukta.....
Benim Yapmak istediğim ise şu normal bir sql ile yine istenilen şey bulunabilir ama gidilecek yer MAMUL KODU çünkü esas kriter o.....
Öyle bir tablo yapmalıyım ki ve bu işlem her zaman tekrar edip o tablo yeniden oluşmalı ve sonradan eklenen database ürünler tekrar oluşmalı ve tablolar güncellenmeli..........
1. tane sipariş tablosu var orada MAMUL kodları var siparişlerde.....
2. ise depo kodları ve burdada MAMUL KODUNA'a göre ürünlerin stoklarda ne kadar olduğu var....
Yapmak istediğim şey siparişlerde hangi stok kodlarının geçtiği, bunu zaten bulabiliyorum...Depo dada hangi stok kodundan (Mamul Kodu) ne kadar var onuda bulabiliyorum...
Önemli Not: Burası önemli (şunu söyleyim her mamül ve hammedde kodu esasında stok kodu, Böyle olduğu için ana stok kodundan aradığım zaman ben o stok koduna ait hammade kodlarını buluyorum...Ama benim istediğim...Ama benim istediğim içinde bulunan hammadde kodlarından aradığım zaman onu bulması sonra bir üstüne daha sonra bir üstünü taki mamul koduna kadar ve gereken ihtiyacı hesaplaması...
Parent Child ilişkisini kuran bir function var MSSQL'de bu function çalışıyor ama text bilgi veriyor...Bunu sanal bir table nasıl aktarabilirim...
Kod: Tümünü seç
CREATE PROCEDURE expand (@current char(20)) AS
SET NOCOUNT ON
DECLARE @lvl int, @line char(20)
CREATE TABLE #stack (item char(20), lvl int)
INSERT INTO #stack VALUES (@current, 1)
SELECT @lvl = 1
WHILE @lvl > 0
BEGIN
IF EXISTS (SELECT * FROM #stack WHERE lvl = @lvl)
BEGIN
SELECT @current = item
FROM #stack
WHERE lvl = @lvl
SELECT @line = space(@lvl - 1) + @current
PRINT @line
DELETE FROM #stack
WHERE lvl = @lvl
AND item = @current
INSERT #stack
SELECT HAM_KODU, @lvl + 1
FROM TBLSTOKURM
WHERE MAMUL_KODU = @current and opr_bil='B'
IF @@ROWCOUNT > 0
SELECT @lvl = @lvl + 1
END
ELSE
SELECT @lvl = @lvl - 1
END
GO
Query Analyzerdan çağırdığım zaman stok kodunu şöyle bir çıktı alıyorum.....
expand 'A01-0018-00001'
Kod: Tümünü seç
A01-0018-00001
034-30040-01
024-03010-11
029-20320-03
028-20200-03
022-10325-02
032-28010
020-1022-03
MF2218-0082-01
MF2218-0082-01-016
MF2218-0082-01-00
MF2218-0082-01-0
MF2218-0082
BA22-01003-04
BA22-01003-04-006
BA22-01003-04-005
BA22-01003-04-00
BA22-01003-01-0
BA22-01003-01-
BA22-01003-01
BA22-01003
Bu fonksiyon ile bilgiler nasıl master-detail bir table yazılabilir....Lütfen yardım....