Forum

SQL'de Bir Tablodan...
 
Bildirimler
Hepsini Temizle

SQL'de Bir Tablodan Başka Bir Tabloya Belirli Verilerin Aktarımı

3 Yazılar
1 Üyeler
0 Reactions
5,267 Görüntüleme
(@BurakFINDIK)
Gönderiler: 3
Active Member
Konu başlatıcı
 

Herkese merhaba,

Öncelikle daha önce SQL ile hiç çalışmadığımı belirtmek isterim. Dolayısıyla, işin jargonu ile ilgili de pek bilgim yok, anlamsız şeyler yazarsam mazur görün lütfen. Kullandığım database SQL Server 2012 Express. Şöyle bir sorunum var:

Elimde "moment, ln, ix, value" şeklinde 4 sütundan oluşan "mspdb" adında bir tablo var. Mspdb'ye yeni eklenen satırların "value" sütunlarındaki değerleri, oluşturmuş olduğum "deneme" adlı tabloya yazan bir trigger oluşturdum. Kodu da şu şekilde:

CREATE TRIGGER trig_update_deneme

ON [mspdb]

FOR INSERT

AS

Begin

    Insert into deneme (ln, value) 

    Select distinct i.value

from inserted i

    Left Join deneme e

    on i.value = e.value

End 

Ancak sormak istediğim nokta şu:

"mspdb" tablosunun "ln" sütununa "ya1, ya2, ya3 ve ya4" şeklinde dört farklı değer geliyor. Yani tabloya periyodik olarak, aynı anda 4 satır birden ekleniyor. Benim istediğim ise bu satırların dördünü birden "deneme"ye taşımak yerine sadece "ln" sütununun değeri "ya1" olan satırların "value" değerlerini aktarmak istiyorum. Kod üzerinde nasıl bir değişiklik yapmam gerekecek?

Şimdiden çok teşekkürler. İyi çalışmalar. 

 
Gönderildi : 13/03/2015 13:45

(@BurakFINDIK)
Gönderiler: 3
Active Member
Konu başlatıcı
 

Merhaba,

 Oldukça karışık gibi geldi anlatımım. Ama doğru anlamışsınız gibi gözüküyor. ben de oraya where yazıp koşul belirtmeye çalışmıştım ama başarılı olamadım. doğru yoldayım ama hatayı bulamadım.

ln='ya1' demişsiniz. orada ' ' işaretleri mi koyulması gerekiyor? bu şekilde ekleme yaptım "invalid column name" hatası veriyor. kendim denerken de aynı hatayı alıyordum. yazdığım koşulu sütun ismi olarak algılıyor. ayrıca o sütunun veri tipi olarak varchar seçmiş bulunmaktayım. belki bir faydası olur.

 edit: deneme altına mspdb deki ln sütununu kopyalamayacağım. mspdb'deki ln sütunundaki değerlere göre koşul belirtip sadece koşulu sağlayan satırladan value değerini aktaracağım.

 
Gönderildi : 13/03/2015 13:59

(@BurakFINDIK)
Gönderiler: 3
Active Member
Konu başlatıcı
 
Şimdi ilk tablom şu şekilde:
 
       moment                       ln                  ix        value
15-03-11 09:07:24      YA1 10 2
15-03-11 09:07:24      YA2 10 2
15-03-11 09:07:24      YA3 10 2
15-03-11 09:07:24      YA4 10 0
 
Tabi periyodik olarak bu dörtlü tekrar tekrar geliyor. Burada YA1 olan satırlardaki sadece value değerlerini deneme'ye yazdıracağım. yani ya1 olma koşulu yeterli. yani aslında amacım ya1, ya2, ya3 ve ya4'lere ait value değerlerini ayrı ayrı 4 tabloya dağıtmak.
 
Bu değerler bir yazılımda kullanılacak SQL'den Oracle'a aktarılacak. Arada bir web servis olacak. SQL'deki program sürekli Oracle'dan sorgu gelip gelmediğini denetleyecek. sorgu geldiğinde istenen değeri Oracle tarafına gönderecek. Tabi bu işlemler hakkında hiçbir fikrim yok. 
 
Gönderildi : 13/03/2015 14:51

Paylaş: