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
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.
(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.
Kod:
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'
(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.
Kod:
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.
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
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
(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

Sanırım NETSİS kullanıyorsunuz tablo isimlerine bakılırsa

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