Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
TABLO KAYIT İÇİNDEKİ KELİMEYİ BAŞA YAZMA
#1
İyi günler arkadaşlar
interbase vt kullanıyorum ve
stok bilgileri adını tablom var
Tablo içerisinde binlerce ürün var......
ürünlerin markaları en sona yazılmış veya bazılarda ortalarda bulunuyor...Sonda veya ortada bulunan ürün marka isimlerini en başa almak ve diğer lerini silmek istiyorumm


SELECT
STOK_KOD,
STOK_ADI,
BIRIM,
FIYAT1
FROM
STOK_BILGILERI
ORDER BY STOK_KODU

5010 .........VANA 3/4 ECA..................ADET..... 185
5020 ..........ZIMPARA 100 KUM ATLAS......ADET......9,5
5035............KLOZET İÇ TAKIM NOVA 1210....ADET.....195

olmasını istediğim..:

ECA VANA 3/4
Cevapla
#2
(11-03-2023, Saat: 14:52)maydin60 Adlı Kullanıcıdan Alıntı: İyi günler arkadaşlar
interbase vt kullanıyorum ve
stok bilgileri adını tablom var
Tablo içerisinde binlerce ürün var......
ürünlerin markaları en sona yazılmış veya bazılarda ortalarda bulunuyor...Sonda veya ortada bulunan ürün marka isimlerini en başa almak ve diğer lerini silmek istiyorumm


SELECT
STOK_KOD,
STOK_ADI,
BIRIM,
FIYAT1
FROM
STOK_BILGILERI
ORDER BY STOK_KODU

5010 .........VANA 3/4 ECA..................ADET..... 185
5020 ..........ZIMPARA 100 KUM ATLAS......ADET......9,5
5035............KLOZET İÇ TAKIM NOVA 1210....ADET.....195

olmasını istediğim..:

ECA VANA 3/4

Bu nasıl yapılır bilmiyorum ama çözümde sorun kadar yanlış 
mümkünse marka adında tablo yap  ve id ile stok kartlarımı
  ilişkilendir inan bu daha kolay yapılır 
Stok kartında marka id alanı oluştur sonra içinde eca olanın
İd değerini bu alana işle
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#3
arada belirteç vs varmı?

Kraışık datalarda budediğiniz imkansız olmasa da çok zorlar..
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#4
Eğer belirli sayıda marka varsa her marka için aşağıdaki sql çalıştırılabilir:

Eğer Firebird 2.1 ve üzeri kullanıyorsanız:

update STOK set STOK_ADI = 'ECA' || replace(STOKADI, 'ECA', '');


daha eski versiyon firebird veya interbase'de replace komutu olmadığından STRPOS ve SUBSTRING komutları ile aşağıdaki gibi bir sql kullanılabilir:

update STOK set STOK_ADI =
CASE when strpos('ECA', STOK_ADI) = 0 then STOK_ADI
ELSE
'ECA' || substring(STOK_ADI from 1 for strpos('ECA', STOK_ADI) - 1)
||''
||substring(STOK_ADI from strpos('ECA', STOK_ADI)+char_length('ECA'))
END
Cevapla
#5
ben olsam şöyle bir yöntem ile ilerlerdim.

Tabloya yeni bir kolon açıp marka adını verirdim.

1.basit bir update ile STOK_ADI like ('ECA') şartı uygular ve yeni açılan kolona marka ismini yazardım;
update STOK set marka='ECA' where stok_adi like ('%ECA%');

2. bir update ile eşleşen marka isimlerini boşluk ile değiştirip stok adını sadece ürün ismi için kullanırdım
update STOK set stok_adi =REPLACE (stok_adi,'ECA','') where stok_adi like ('%ECA%');
Ve bu komutları tüm markalar için sırası ile çalıştırırdım

Elimde daha düzenli , marka ve ürün eşleştirilmesi yapılmış bir tablo olurdu
Benim fikrim tabi Smile
Cevapla
#6
Wink 
faitless kardeşime cok teşekkür ederim...
yazdıgı kodları kendıme uyarladımm....

bu arada   update STOK set STOK_ADI = 'ECA' || replace(STOKADI, 'ECA', ''); bu kod tum stok adlarını ucuruyor Smile

SELECT

           STADI, 
          'HTS '||SUBSTRING (STADI from 1 for (POS('HTS', STADI ) - 1))  AS VAL1,        /**  İLK SATIR BASINA 'HTS' EKLİYOR + 'HTS' KELİMESİNE KADAR OLAN STRINGI BULUYOR
          SUBSTRING (STADI  from pos('HTS', STADI )+length('HTS'))  AS VAL2,             /**   'HTS'  DEN SONRAKI STRING I BULUYOR..

          'HTS '||SUBSTRING (STADI from 1 for (POS('HTS', STADI ) - 1))  
          || '' ||SUBSTRING (STADI  from pos('HTS', STADI )+length('HTS')) AS VALTOP     /** İSTENILEN SATIR BULUNUYOR

    FROM
           STOK
WHERE
 POS('HTS' IN STADI )> 0

***********************************************************************************
UPDATE KISMI
**********************************************************************************

UPDATE STOK

SET

STADI =

'HTS '||SUBSTRING (STADI from 1 for (POS('HTS', STADI ) - 1))
|| '' ||SUBSTRING (STADI from pos('HTS', STADI )+length('HTS'))


WHERE
POS('HTS' IN STADI )> 0


Ek Dosyalar Resimler
   
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Tablo birleştirme muratmert 7 1.605 13-04-2023, Saat: 09:24
Son Yorum: mrmarman
  İki Tablo Arasında Olmayan Kayıtları Listelemek sunbeki 3 1.404 13-05-2021, Saat: 22:08
Son Yorum: sunbeki
  tablo var mı kontrolü sadikacar60 14 4.638 04-04-2021, Saat: 02:18
Son Yorum: ayzit
  Fibdatabase (Fibdataset) bileşeni tüm tablo alanlarını göstermiyor :( baloglurecep 2 2.254 23-06-2020, Saat: 07:33
Son Yorum: MugenPower
  flame robin yeni tablo oluşturma sadikacar60 1 1.844 25-01-2020, Saat: 22:34
Son Yorum: anemos



Konuyu Okuyanlar: 1 Ziyaretçi