Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
UPDATE ile Ikı Tablo da alan guncellemek !!!
#1
Arkadaşlar Merhaba ; İki tablom var biri TBLSTHAR diğeri TBLFATUIRS ve bu alanlarda güncelleme yapmak istiyorum. Yardım ederseniz çok sevinirim.

Kod şu şekilde;
UPDATE TBLFATUIRS 
    SET PLA_KODU='2', 
           PLASIYER_KODU='2',
           ACIKLAMA='DENEME' (SELECT PLASIYER_KODU FROM TBLSTHAR WHERE INCKEYNO='81060' AND FATIRS_NO='OLG000000004716' AND GIB_FATIRS_NO='OLG2018000004716' AND CARI_KODU='000499')
ACIKLAMA,PLA_KODU "TBLFATUIRS" Tablosunda
PPLASIYER_KODU "TBLSTHAR" Tablosunda
Cevapla
#2
Merhaba.

Birden fazla tabloda güncelleme yapmak istiyorsanız, SQL UPDATE içerisinde INNER JOIN yapısına bakmalısınız. Daha önce bu tip bir yapıya ihtiyacım olmadığı için detaylı bilgi sahibi değilim o yüzden kod paylaşamıyorum.
Bazen daha ileriye ulaşmak için bir kaç adım geri gitmek mecburidir. Çünkü en ileri sıçrayışlar iki adım geriden başlar.
Cevapla
#3
Şuraya bir bakın isterseniz
https://stackoverflow.com/questions/2044...erver-2005
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#4
(17-12-2018, Saat: 18:35)narkotik Adlı Kullanıcıdan Alıntı: Şuraya bir bakın isterseniz
https://stackoverflow.com/questions/2044...erver-2005

Bu şekilde yaptım ama JOIN tanımıyor.
PDATE TBLFATUIRS FI JOIN TBLSTHAR ON FI.FATIRS_NO=SH.FISNO SET TBLFATUIRS.PLA_KODU='01', TBLFATUIRS.ACIKLAMA='UPDATE DENEME',
TBLSTHAR.DEPO_KODU='1',TBLSTHAR.PLASIYER_KODU='01'
WHERE
  FI.GIB_FATIRS_NO='OLG201800000001' AND FI.FATIRS_NO='OLG000000000001' AND FI.CARI_KODU='0546' AND
  SH.DEPO_KODU='01',SH.PLASIYER_KODU='02' AND SH.INCKEYNO='12784' AND SH.FISNO='OLG000000000001' AND SH.STHAR_CARIKOD='0546'
Cevapla
#5
(17-12-2018, Saat: 20:09)OZCANK Adlı Kullanıcıdan Alıntı:
(17-12-2018, Saat: 18:35)narkotik Adlı Kullanıcıdan Alıntı: Şuraya bir bakın isterseniz
https://stackoverflow.com/questions/2044...erver-2005

Bu şekilde yaptım ama JOIN tanımıyor.
PDATE TBLFATUIRS FI JOIN TBLSTHAR ON FI.FATIRS_NO=SH.FISNO SET TBLFATUIRS.PLA_KODU='01', TBLFATUIRS.ACIKLAMA='UPDATE DENEME',
TBLSTHAR.DEPO_KODU='1',TBLSTHAR.PLASIYER_KODU='01'
WHERE
  FI.GIB_FATIRS_NO='OLG201800000001' AND FI.FATIRS_NO='OLG000000000001' AND FI.CARI_KODU='0546' AND
  SH.DEPO_KODU='01',SH.PLASIYER_KODU='02' AND SH.INCKEYNO='12784' AND SH.FISNO='OLG000000000001' AND SH.STHAR_CARIKOD='0546'


Bildiğim kadarı ile bu şekilde join olmaz.
siz yine ilk yazdığınız gibi

UPDATE TABLO_1_İSMİ SET X=1, Y=2        --(x 1. tabloda y ikinci tabloda)
inner join TABLO_2_İSMİ on alan1=alan2    --(alan1 ile alan2 tablo1 ve tablo2 deki birbiri ile eş değer olan alanlar)

where ........

şeklinde yazmalısınız.
Cevapla
#6
Merhabalar update etmek istediğiniz tablolardan
FATUIRS tablosunda Tek satır veri tutulurken
STHAR tablosunda birden fazla veri tutulmaktadır.

UPDATE Cümlenizde mantıksal bi sorun var gibi Smile

TBLSTHAR Da plasiyer kodu yazıyorsa neden bir daha update etmeye çalışıyorsunuz
Zaten İrsaliye oluşturulurken TBLSTHAR 'a Plasiyer kodunu yazmıştır
o zaman şunu yapsanız işinizi görmeyecek mi ?
BEGIN TRAN
UPDATE dbo.TBLFATUIRS SET 
PLA_KODU = (SELECT PLASIYER_KODU FROM TBLSTHAR WHERE FISNO = 'OLG2018000004716' AND INCKEYNO = '81060' AND STHAR_CARIKOD = '000499')
,ACIKLAMA = (SELECT STHAR_ACIKLAMA FROM TBLSTHAR WHERE FISNO = 'OLG2018000004716' AND INCKEYNO = '81060' AND STHAR_CARIKOD = '000499')
WHERE FATIRS_NO = 'OLG2018000004716' AND CARI_KODU = '000499'
COMMIT
Cevapla
#7
(18-12-2018, Saat: 04:55)Merhaba teşekkür ederim kod için ben bir şey anlayamadım hangi alanları update etmem gerekiyor? FiRewaLL Adlı Kullanıcıdan Alıntı: Merhabalar update etmek istediğiniz tablolardan
FATUIRS tablosunda Tek satır veri tutulurken
STHAR tablosunda birden fazla veri tutulmaktadır.

UPDATE Cümlenizde mantıksal bi sorun var gibi Smile

TBLSTHAR Da plasiyer kodu yazıyorsa neden bir daha update etmeye çalışıyorsunuz
Zaten İrsaliye oluşturulurken TBLSTHAR 'a Plasiyer kodunu yazmıştır
o zaman şunu yapsanız işinizi görmeyecek mi ?
BEGIN TRAN
UPDATE dbo.TBLFATUIRS SET 
PLA_KODU = (SELECT PLASIYER_KODU FROM TBLSTHAR WHERE FISNO = 'OLG2018000004716' AND INCKEYNO = '81060' AND STHAR_CARIKOD = '000499')
,ACIKLAMA = (SELECT STHAR_ACIKLAMA FROM TBLSTHAR WHERE FISNO = 'OLG2018000004716' AND INCKEYNO = '81060' AND STHAR_CARIKOD = '000499')
WHERE FATIRS_NO = 'OLG2018000004716' AND CARI_KODU = '000499'
COMMIT
Cevapla
#8
(18-12-2018, Saat: 22:37)OZCANK Adlı Kullanıcıdan Alıntı: Merhaba teşekkür ederim kod için ben bir şey anlayamadım hangi alanları update etmem gerekiyor?

Zaten Yazdığım SQL Cümlesi gereken alanları update edecek.
STHAR tablosunda dediğim gibi Plasiyer kodu zaten vardır Alış yada satış irsaliyesi yada depolar arası transfer işlemlerinde o alanı dolduracağından FATUIRS leri update etmen yeterli olacaktır.

Bu Update cümlesini yazma sebebinizi merak ettim ne için kullanacaksınız Smile
Sanırım NETSİS kullanıyorsunuz tablo isimlerine bakılırsa Smile
Cevapla
#9
(19-12-2018, Saat: 00:03)Evet haklısın NETSIS için kullanacam FiRewaLL Adlı Kullanıcıdan Alıntı: Evet haklısın Smile  NETSIS için kullanacam FiRewaLL. Şunun için kullanacam E-Faturada depo kodu plasiyer kodu yanlış girildiğinde tabloyu update etmek için. Onun içinde sql cümlesi bir işime yaramadı çünkü yanlış olan alanları elle istediğim değeri yazarak update etmek istemiştim. Yinede yüreğine sağlık Teşekkür ederim. Smile 
(18-12-2018, Saat: 22:37)OZCANK Adlı Kullanıcıdan Alıntı: Merhaba teşekkür ederim kod için ben bir şey anlayamadım hangi alanları update etmem gerekiyor?

Zaten Yazdığım SQL Cümlesi gereken alanları update edecek.
STHAR tablosunda dediğim gibi Plasiyer kodu zaten vardır Alış yada satış irsaliyesi yada depolar arası transfer işlemlerinde o alanı dolduracağından FATUIRS leri update etmen yeterli olacaktır.

Bu Update cümlesini yazma sebebinizi merak ettim ne için kullanacaksınız Smile
Sanırım NETSİS kullanıyorsunuz tablo isimlerine bakılırsa Smile
Cevapla
#10
E-Faturada depokodu ve plasiyer kodunun önemi olmaması lazım
E-Faturada Şube kodu,tutar ve kdv doğrusysa gerisi sıkıntı değil
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Lightbulb Double Alan Karşılaştırma masteryoda 4 5.000 14-08-2017, Saat: 11:14
Son Yorum: masteryoda



Konuyu Okuyanlar: 1 Ziyaretçi