sql kodu nedir?

Katılım
6 Kasım 2004
Mesajlar
34
merhaba...
kullandığım muhasebe programında etiket basmam gerekiyor, çok fazla müşteri olduğundan son 90 gün içinde çalışanları ayırıp, etiketi ona göre almam işimi kolaylaştıracak. bunun için query analyzer da yazacağım kod; cari karttaki etiket basılsın alanını (evet/ hayır şeklinde) evete çevirsin istiyorum. kullandığım program mikro mis9000.
 
Katılım
15 Haziran 2005
Mesajlar
125
Excel Vers. ve Dili
Office 2003 -TR
Office 2003 -ING
Office 2007 -ING
Altın Üyelik Bitiş Tarihi
29/11/2020
Bence sorun bu bölümde olmaması gerekir diye düşünüyorum.
 
Katılım
6 Kasım 2004
Mesajlar
34
mraltin
tablo adı: MikroDB_V11_Fetas_2005..CARI
colomn da : cari_etiket_bas_fl (bit ve null olarak belirtilmiş)

fly, sql ile ilgili ayrı bölüm olmadığından ve daha önce sql ile iligili konular burada sorulduğu için bu bölümü seçtim.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Enterprise Manager'de tabloyu seçip sağ mouse ile open Table yi seçin orada Return All Rows 'u seçip tablonun içine girin.

İstediğiniz kolonda neler yazıyor bakınız Herhalde 2 şeçenektir.
E/H 0 veya 1 gibi

Tarih alanının adına lazım 90 gün arasındaki verileri seçmek için
ona göre bakıp bilgi verirseniz Update ile yapılabilir
 
Katılım
6 Kasım 2004
Mesajlar
34
zafer bey o alan cari kartlarda kullanıldığından şu an enterprıse menegarda kartlarda 0 da var 1 de ... sanıyorum önce hepsini tek bir rakama (hayıra )getirmek gerekecek.
tarih alanının adı cha_tarihi
buna bir de cha_evrak_tipi =63 olanları (fatura)eklersek istediğim gibi olacak
yani 90 gün ve fatura hareketi (63) olanlara etiket basılsın dersek benim işimi görür. Arada ufak tefek sorun çıkarsa da ben burada halledebilirim kolon isimleri vb.gibi.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Enterprise Manager'de tabloyu seçip sağ mouse ile open Table yi seçin orada Return All Rows 'u seçip tablonun içine girin.

6.sıradaki araç çubuğuna basın altta update'yi seçin

Column yazan yerden kolonlarınızı seçin Criteria alanlarına tarih ve faturanızın numarasını yazın
etiket basma kolonunda new value kısmına etiket bas 1 se 1 yazın

Ã?nce yedekleme yapın sonra bu işlemleri yapın
 

Hüseyin

Administrator
Yönetici
Admin
Katılım
2 Haziran 2004
Mesajlar
3,535
Excel Vers. ve Dili
Excel 2010 - Türkçe
Fly_butterfly' Alıntı:
Bence sorun bu bölümde olmaması gerekir diye düşünüyorum.
Uyarı için teşekkürler.
Soru taşındı.
 
Katılım
6 Kasım 2004
Mesajlar
34
merhaba...
zafer bey verdiğiniz bilgiler için öncelikle teşekkür ederim. her şeyi çok iyi anladım bir kısmını da uyguladım bir problem yok. yalnız ben kriter olarak kullanılacak kolonların (evrak tipi ve tarih) ayrı bir tablo da olduğunu belirtmemişim yani işlemin iki ayrı tabloda yapılması gerekiyor. Bunun nasıl olduğunu da müsait olduğunuzda yazarsanız çok memnun olurum.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Tablolar daki bilgileri birbirleriyle bağlayan referansları vardır.
Ã?ncelikle onları bilmeniz gerekiyor.

Ã?rneğin

Aşağıda Carikart , Fatura ve ambar tabloları var

siz programda carikartları ayrı bir tablodan girdiniz.
İşyerinize ait ambarlarıda ayrı tabloya girdiniz.

A nolu müşteriye xx ambarından 10 ton mal kestik
bu irsaliye irsaliye tablosuna yazıldı
burada irsaliye tablosuna yazarken A nolu müşteri ile xx ambarının refans numaralarınıda yazar

Bunu sebebi rapor çekerken a nolu müşterinin bana iki tarih arsı irsaliye bilgilerini getir dendiği zaman carikarttaki referans ile irsaliye tablosuna yazdığı carikart referansını eşleştir.
aynı olanları döker.

Bunu en güzel Excel query örnekleyebilirsiz.

Aşağıda örnekte query ile yapılmış örnekte birleştirme alanlarını görüyorsunuz.

Yazılımınızı yapan firma ile görüşüp tablo ve kolon isimlerini , onları birbirine bağlayan referansların hangi kolonlar olduğunu alabilirsiniz.
 
Katılım
6 Kasım 2004
Mesajlar
34
merhaba...
zafer bey ilginiz için teşekkür ederim. şimdi benim kullanmam gereken 2 tablo var. bunlardan biri CARI, ikincisi CARIHAR. yalnız bu tabloların ikisini birden update kısmında değil select kısmında veriyor, yani update kısmında iki tabloyu birden göstermiyor. sizin dediğiniz gibi ref kolonunu aldığımızı varsayarsak burada işlemi ne şekilde yapabiliriz.
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
selam,

ilk önce bu kodu çalıştırın.
Kod:
create view caritablo
as
select distinct cha_kod from carihar where cha_tarih>'2005/09/15'
bu size son 90 gün içinde çalışanların kodlarını verecektir. ve bir adet caritablo adında bir view oluşturacaktır.

sonra;
Kod:
update dbo.musteri set dbo.musteri.muk_etiket_basilsinf=1 from dbo.musteri inner join dbo.caritablo on dbo.musteri.muk_kod=dbo.caritablo.cha_kod

not:muk_etiket_basilsinf kolonun mikro databasedeki ismini tam hatırlayamadığım için böyle yazdım.Sizden ricam bu kolonun doğru ismini yazmanız. Zannediyorum sorunsuz çalışacaktır.

kolay gelsin.
 
Katılım
6 Kasım 2004
Mesajlar
34
merhaba...
sayın wakkassss view yaratmaya ilişkin kodları çalıştırırkan önce tarih tırnaklarında sonra da büyük işaretinde sözdizimi hatası verdi. ekte kullandığım CARI ve CARIHAR tablosunu gönderdim. çalışılan firma ismi üstte mavi de " MikroDB_V11..." . CARI de (kartların tanımlandığı alan) cari_etiket_bas_fl değerinin 1 e eşit olmasını istiyorum. CARIHAR deki "cha_tarihi" 90 gün öncesi "cha_evrak_tipi " de 63 e eşit olmasını istiyorum. ilginiz için teşekkür ederim.
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
Selam,

Kusura bakmayın, cha_tarih teki "i" harfini unutmuşum :( aşağıdaki kodları çalıştırdım. 9000 de herhangi bir sorun yapmadan çalıştı. Sizdeki cari isimli tablo bendekinden daha değişik. kolon isimlerinin aynı olduğunu düşünüyorum. Ve ona göre tekrar düzenledim. tablonuzu tam göremediğim için kesin diyemiyeceğim bu yüzden lütfen kolon isimlerini tekrar gözden geçirin. Programınızda "etiket" olayının nereye yazdığını görmek için ise müşteri kartındayken ALT+G ve ALT+T tuşlarına basın.

view;
Kod:
CREATE VIEW caritablo AS SELECT DISTINCT cha_kod FROM CARIHAR WHERE cha_tarihi > '2005/09/15'
Update;
Kod:
UPDATE    dbo.CARI
SET              dbo.CARI.cari_etiket_bas_fl = 1
FROM         dbo.CARI INNER JOIN
                      dbo.caritablo ON dbo.CARI.cari_kod = dbo.caritablo.cha_kod
Kolay gelsin.
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
Selam,

Bu arada v11 de denedim yukarıdaki kodları sorunsuz çalıştı. Umarım işinize yarar.

tekrar kolay gelsin.
 
Katılım
6 Kasım 2004
Mesajlar
34
merhaba...
sayın wakkassss, verdiğiniz kodu
CREATE VIEW caritablo AS SELECT DISTINCT cha_kod FROM MikroDB_V11_FETAS2_2004..CARIHAR WHERE cha_tarihi > '2005/09/15'
şekinde girip query analyzer da çalıştırdığımda view'i oluşturdu.
updat'e ilişkin kodu çalıştırdığımda
Server: Msg 208, Level 16, State 1, Line 1
Invalid object name 'dbo.CARI'.
hatası verdi. 1 satırın başına da yukarıdaki gibi MikroDB_V11_FETAS2_2004.. koyduğumda
Server: Msg 1032, Level 15, State 1, Line 2
Cannot use the column prefix 'dbo.CARI'. This must match the object in the UPDATE clause 'MikroDB_V11_FETAS2_2004..dbo.CARI'.
hatası veriyor. hatayı nerede yapıyorum inceleyebilirmisiniz.
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
Selam,

1. sayfada örnek resimde enterprise manager'da sql yazan yere dokunduğunuzda size bir sql penceresi açacaktır. Kodları orada denermisiniz?

Normalde sizin database isminiz MikroDB_V11_FETAS2_2004 burada çalışmanız için query analyzer da ; use MikroDB_V11_FETAS2_2004 demeniz lazım.

Sonra benim verdiğim kodları çalıştırmanız gerekiyor. Normal şartlarda birebir denedim çok güzel çalışıyor. Sizde neden çalışmadığını anlamadım.

Bende database farklı ama database ismi yazmaya gerek yok. Zaten aynı database içinde işlemleri yapıyorsunuz.

Kolay gelsin.
 
Katılım
6 Kasım 2004
Mesajlar
34
merhaba...
sayın wakkassss nihayet işlemi yapabildim. gönderdiğiniz kodlar çalışıyor yalnızca başlarındaki "dbo." kısımlarını kaldırdım, işlemi gerçekleştirdi. kodların çalışmasına ilişkin bu farkın neden ileri geldiğini anlayabildiniz mi? zahmetleriniz için çok teşekkür ederim. diğer ilgilenen arkadaşlar da sağolsunlar.
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
Selam,

Bende de o dbo lar olmadan zaman zaman hata veriyor:( dbo; yanlış bilmiyorsam database object anlamına geliyor ve eğer farklı tablolardan işlem yapıyorsanız SQL tarafından isteniyor. Hatta farklı database kullanıyorsanız dbo nun önüne birde ilgili database'in ismini getirmeniz gerekli.

Neyse hallolduğuna sevindim.

Birde eğer mikro ile sorun yaşarsanız www.mye.com.tr/forum adresine de(bu programın resmi sitesi) yazabilirsiniz. Orada gerçekten bu programın ve SQL'in uzmanları var.(Hatta programın geliştiricileri de orada)

Kolay gelsin.
 
Üst