SQL Hakkinda Genel Bilgiler
Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: SQL
Forum Adı: SQL Veri Tabanı İşlemleri
Forum Tanımlaması: Table,View,Trigger,SELECT,UPDATE,INSERT...
URL: http://www.erpne.org/forum_posts.asp?TID=17
Tarih: 22 Kasım 2024 Saat 19:48 Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com
Konu: SQL Hakkinda Genel Bilgiler
Mesajı Yazan: netsisg
Konu: SQL Hakkinda Genel Bilgiler
Mesaj Tarihi: 11 Kasım 2006 Saat 15:06
SQL'nin Çalisma Ve En Çok Kullanilan Komutlar Hakkinda Genel Bilgiler.
SQL (Structured Query Language) veri tabanlarindaki verileri islemek için kullanilan yapisal sorgulama dilidir.
Bu dil yardimiyla veritabanlarindaki tüm islemler yapilabilir. Backup almadan tutunda bir tabloya veri girmeye varincaya kadar hersey.
SQL’i su anda piyasada bulunan hemen hemen her veritabaninda kullanabilirsiniz. SQL’de her veritabaninda kullanilan ortak ifadeler olmasina karsin, veritabanlarinin kendine özgü ifadeleri de vardir. Mesela Oracle’da SQL ile yapabildiginiz bazi seyleri baska veritabanlarinda yapamayabilirsiniz.
SQL temel olarak su ifadelerle kullanilir. SELECT, FROM, WHERE, ORDER BY, GROUP BY, HAVING, UPDATE, DELETE, INSERT.
Burada kullandigimiz SQL cümleleri ISCI adli bir tablo üzerine yazilmistir. Alanlar ISCI_NO, ISCI_ADI, YAS, GIRIS_TARIHI, MAAS.
SELECT: Tablodan seçmek istedigimiz alanlari belirtmek için kullanilir. Eger tablodan tüm alanlari seçmek istiyorsak o zaman alan isimleri yerine * isareti konur.
FROM: Üzerinde islem yapilacak tablo/tablolari belirtmek için kullanilir.
WHERE: Tablodan eger tüm kayitlari degilde istedigimiz bazi kayitlari elde etmek istiyorsak, örnekte maasi 250 milyondan fazla olan isçilerin numarasi ve adi gibi, o zaman buraya istedigimiz kriteri yazariz.
SELECT ISCI_NO, ISCI_ADI FROM ISCI WHERE MAAS>250000000
DISTINCT: Birbirinin ayni olan satirlarin listelenmemesi için bu ifade kullanilir. Mesela ISCI tablosunda bulunan birbirinin ayni olmayan isimleri listelemek istersek
SELECT DISTINCT ISCI_ADI FROM ISCI
seklinde bir SQL ifadesi yazariz.
IN: Kosul belirtirken kullaniriz. Mesela ismi AHMET, ALI veya MUSTAFA olan isçilerin bilgilerini listelemek için
SELECT * FROM ISCI WHERE ISCI_ADI="AHMET" OR ISCI_ADI="ALI" OR ISCI_ADI="MUSTAFA"
seklinde bir ifade kullaniriz. Bunun yerine
SELECT * FROM ISCI WHERE ISCI_ADI IN ("AHMET" ,"ALI" ,"MUSTAFA")
ifadesini de kullanabiliriz. Yani listenin içindeki herhangi bir degerin bulunmasi kayitin seçilmesi için yeterlidir.
LIKE: Eger aradigimiz kayitin bulunmasi için tam bir karsilastirma yapamiyorsak o zaman kullaniriz. Mesela isminin bas harfi A ile baslayan isimleri bulmak için
SELECT * FROM ISCI WHERE ISCI_ADI LIKE "A%" ifadesi kullanilir.
% isareti uzunlugu önemsiz olmak üzere yazildigi yere her türlü ifade gelebilir anlamindadir.
? isareti ise bir karakter olmak üzere her türlü degeri alabilir anlamindadir. Mesela isminin sondan üçüncü harfi A, ve son harfi Z olan kayitlari listelemek istersek sondan ikinci harfin ne oldugu önemli degildir. O zaman o harf yerine asagida görüldügü üzere ? isaretini kullaniriz.
SELECT * FROM ISCI WHERE ISCI_ADI LIKE "%A?Z" ifadesi kullanilir.
BETWEEN: Kosul belirtirken iki deger arasini belirtmek için kullanilir. Örnek: Yasi 30 ile 40 arasindaki isçilerin kayitlarini listelemek için
SELECT * FROM ISCI WHERE YAS BETWEEN 30 AND 40
ifadesi kullanilir. Bunu ayni zamanda asagidaki ifade ile de yapabilirsiniz. BETWEEN yazim kolayligi saglar.
SELECT * FROM ISCI WHERE YAS>=30 AND YAS<=40
SUM: Seçilen degerlerin toplamini bulur. Isçilerin aldigi toplam ücreti görmek için
SELECT SUM(UCRET) FROM ISCI ifadesi kullanilir.
MAX, MIN, AVG: Verilen degerin en büyügünü, en küçügünü ve ortalamasini bulur. 1999 yilinda giren isçilerin en yüksek ücretinin, en düsük ücretinin ve ortalamasinin ne kadar oldugunu ögrenmek istersek asagidaki ifadeyi kullaniriz.
SELECT MAX(UCRET), MIN(UCRET), AVG(UCRET) FROM ISCI WHERE GIRIS_TARIHI>"01.01.1999"
MAX en büyük degeri, MIN en küçük degeri, AVG ise seçilen degerlerin ortalmasini bulur.
ORDER BY: Tablodan seçtigimiz kayitlari siralamak için kullanilir. Yukardaki örnekte isimleri alfabetik sira ile görmek istersek
SELECT DISTINCT ISCI_ADI FROM ISCI ORDER BY ISCI_ADI
yazariz. Eger siralamayi tersine çevirmek istersek
SELECT DISTINCT ISCI_ADI FROM ISCI ORDER BY ISCI_ADI DESC
yazariz.
GROUP BY: Genelde istatistik amaçlar için kullanilir. Mesela hangi tarihte kaç isçinin ise alindigini bulmak için
SELECT GIRIS_TARIHI,COUNT(*) FROM ISCI GROUP BY GIRIS_TARIHI
yazmaniz yeterli olacaktir. Bu ifade size gün bazinda kaç isçinin ise alindigini gösterecektir. Eger belli bir tarihten önce ya da sonrasini isterseniz veya sadece sayinin 10’dan büyük oldugu günleri görmek isterseniz o zaman ifadeyi su sekilde yazmak gerekir
SELECT GIRIS_TARIHI,COUNT(*) FROM ISCI WHERE GIRIS_TARIHI>"01.01.1999" GROUP BY GIRIS_TARIHI HAVING COUNT(*)>10
HAVING, grup fonksiyonlarinin kriterleri için kullanilir. SUM, COUNT vb. gibi.
UPDATE: Tabloda bulunan bir istediginiz bir veya daha fazla alanin güncellenmesi amaciyla kullanilir. Mesela isçilerin maaslarina % 20 zam yapildigini düsünürsek asagidaki ifade ile bunu tabloda gerçeklestirebiliriz.
UPDATE ISCI SET MAAS=MAAS*1.2
Eger maaslarla birlikte aldiklari primleri de %20 oraninda artirmak isterseniz
UPDATE ISCI SET MAAS=MAAS*1.2 , PRIM=PRIM*1.2
seklinde bir ifade kullanilir. Ayni zamanda WHERE ifadesini kullanarak sadece belli kayitlar üzerinde güncelleme yapabilirsiniz.
DELETE: Tabloda bulunan kayitlari silmek için kullanilir. Eger
DELETE FROM ISCI
derseniz tüm kayitlari gönderirsiniz. DELETE ifadesini kullanirken dikkatli olun. Buradada yine WHERE ifadesini kullanarak sadece belli kritere uyan kayitlarin silinmesini saglayabilirsiniz. Kötü bir örnek ama olsun, patron 45 yasindan büyük isçileri isten atti (burasi Türkiye, olmaz demeyin) ve kayitlarinin silinmesi isteniyor. O zaman
DELETE FROM ISCI WHERE YAS>45
ifadesi kullanilir.
INSERT: Tablolara veri girisi yapmak amaciyla kullanilir.
INSERT INTO ISCI (ISCI_NO,ADI,SOYADI) VALUES (1000,"AHMET","SAVAS");
Eger giris yaparken tablonun bütün alanlari kullanilacaksa alan isimlerini vermeye gerek yoktur.
IKI TABLODAN BIRDEN KAYIT SEÇMEK
Isçilerin kimlik bilgilerinin ISCI_KIMLIK tablosunda tutuldugunu kabul ederek bizden ISTANBUL dogumlu olanlarin listesinin istendigini varsayalim. Tablolar birbirine ISCI_NO alani üzerinden iliskili olsun.
SELECT A.ISCI_NO, A.ISCI_ADI, B.DOGUM_YERI FROM ISCI A, ISCI_KIMLIK B WHERE B.DOGUM_YERI="ISTANBUL" AND A.ISCI_NO=B.ISCI_NO
seklinde bir ifade yazarak listemizi elde edebiliriz. Burada WHERE kosuluna yazdiginiz siranin pek bir önemi yoktur. Her sartta ayni sonuçlari elde ederseniz. Fakat performans açisindan biraz farkeder. Yukardaki ifade
SELECT A.ISCI_NO, A.ISCI_ADI, B.DOGUM_YERI FROM ISCI A, ISCI_KIMLIK B WHERE A.ISCI_NO=B.ISCI_NO B.DOGUM_YERI="ISTANBUL"
ifadesinden daha hizli çalisir. Çünkü ilk ifadede önce dogum yeri ISTANBUL olan kayitlar seçilir daha bu kayitlara isçi tablosu birlestirilir. Sonraki ifadede ise önce tüm kayitlar birlestirilir, bunlarin arasindan dogum yeri ISTANBUL olanlar seçilir.
------------- Netsisg
|
Cevaplar:
Mesajı Yazan: BİLAL
Mesaj Tarihi: 12 Şubat 2007 Saat 12:23
Verdigin bilgiler için çok tesekkür ederim. Veri tabanlari hakkinda fazla bilgiye sahip degilim. Sorum su SQL komutlari nereden girliyor ben hala orda kaldim. Tesekkürler.
------------- HERŞEY BİR FİKİRLE BAŞLAR..
|
Mesajı Yazan: Vural
Mesaj Tarihi: 12 Şubat 2007 Saat 13:23
Sql 2000 kullaniyorsan query analyzer adinda bi tool vardir oradan. Sql 2005 de Sql server management studio toolunu kullanmalisin Kullandigin veri tabani üzerinde sag tiklayip new query diyerek sorgulari çalistirabilirsin
------------- ben de burdayım
|
Mesajı Yazan: BİLAL
Mesaj Tarihi: 18 Şubat 2007 Saat 11:07
Elinde SQL konusunu ve komut yazma mantigini tam olarak anlatabilecek güzel bir e-book olan varsa paylasabilirse sevinirim. Resimli olmasi daha iyi olur.
Tesekkürler......
------------- HERŞEY BİR FİKİRLE BAŞLAR..
|
Mesajı Yazan: NeTSiSFoReVeR
Mesaj Tarihi: 19 Şubat 2007 Saat 08:41
Merhaba;
Asagidaki linki inceleyebilirmisiniz.
http://www.erpne.org/forum_posts.asp?TID=27 - http://www.erpne.org/forum_posts.asp?TID=27
|
Mesajı Yazan: NPP2007
Mesaj Tarihi: 23 Ekim 2007 Saat 13:45
Mesajı Yazan: emiray
Mesaj Tarihi: 23 Ekim 2007 Saat 16:21
Merhaba arkadaslar,
sql hakkinda yararli olabilecegini düsündügüm bir linki sizinle paylasmak istedim.
http://msdn2.microsoft.com/en-us/library/aa260642(SQL.80).aspx
------------- netsis bir tutkudur.Yaşamak Lazım
|
Mesajı Yazan: (sa)
Mesaj Tarihi: 23 Ekim 2007 Saat 16:35
selam
ustad bu link acilmiyor.
denedim ben ama.
saygilar
------------- (sa)
|
Mesajı Yazan: (sa)
Mesaj Tarihi: 23 Ekim 2007 Saat 16:37
üstad
cok ozur
suan acildi site.
telekom grevinden dolayi internette problem varmis.
su an girebiliyorum.
------------- (sa)
|
Mesajı Yazan: emiray
Mesaj Tarihi: 23 Ekim 2007 Saat 17:06
denizlide sorun yok.
telekomdaki kablolari zaten sendika görevlileri spagetti çevirmis.
------------- netsis bir tutkudur.Yaşamak Lazım
|
Mesajı Yazan: gullpasha
Mesaj Tarihi: 26 Kasım 2007 Saat 13:00
slmlar arkadaslar.
Güzel bir döküman hazirlanis ben sahsen sql bilmiyorum fakat 2 haftadir bu sayfda yazilanlar biraz olsun isimi görüyor.
benim istedigim ISCI tablosunu üzreinde çalismisiz ya, netsisg üstadim bu ISCI talosunu bana atabilir misin
Tabloyu görmeden, sql e yeni baslayanlara durum, biraz sanal geliyor.
|
Mesajı Yazan: NeTSiSFoReVeR
Mesaj Tarihi: 26 Kasım 2007 Saat 13:51
gullpasha Yazdı:
slmlar arkadaslar.
Güzel bir döküman hazirlanis ben sahsen sql bilmiyorum fakat 2 haftadir bu sayfda yazilanlar biraz olsun isimi görüyor.
benim istedigim ISCI tablosunu üzreinde çalismisiz ya, netsisg üstadim bu ISCI talosunu bana atabilir misin
Tabloyu görmeden, sql e yeni baslayanlara durum, biraz sanal geliyor. | ISCI diye bi tablo yok. Hayali olarak orda anlatilmis. Sen örnek sirkette TBLCASABIT de felan çalisabilirsin.
|
Mesajı Yazan: gullpasha
Mesaj Tarihi: 26 Kasım 2007 Saat 15:58
Mesajı Yazan: sunaedis
Mesaj Tarihi: 26 Ekim 2008 Saat 22:59
tesekkürler netsisg komutlara çalistim ama group by i ve having count u pek anlamadim netsisteki tablolardan örnek/örnekler göstererek açiklayabilirmisin (mesela tblsthar veya tblcahar olabilir)
|
Mesajı Yazan: sunaedis
Mesaj Tarihi: 26 Ekim 2008 Saat 23:17
Ayrica inner join, left join ve rigt join islemlerinin ne ise yaradiklarini örneklerle açiklayabilirmisiniz.
|
Mesajı Yazan: kıl_ark
Mesaj Tarihi: 05 Şubat 2009 Saat 09:21
merhaba
bir view olusturdum ama istedigim gibi olmadi bir tane daha olusturdum yine olmadi ikisinide silmek istiyorum ne yapmaliyim
|
Mesajı Yazan: Conari
Mesaj Tarihi: 05 Şubat 2009 Saat 10:41
View ismine sag tikla ve delete yap.
code ile delete view XXXXXXXXX
------------- Netsisden vazgeçemiyorum. Beni engelliyor..
|
Mesajı Yazan: kıl_ark
Mesaj Tarihi: 23 Mart 2009 Saat 10:49
MERHABA
cari kodlarin son 3 hanesine göre veya stok kodlarinin ortada bulunan 3 karekterine göre gruplandirma ve muihasebedeki ana hesap gibi borç alacak giris çikis toplamlari gibi hesaplama yapmak istiyoruz nasil yapabiliriz. yani mizan alirken ana grup ve mizan hesaplari ile birlikte nasil aliyorsak o sekilde raporlama yapmak istiyoruz.
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 23 Mart 2009 Saat 12:52
cari hareket veya cari sabit tablolarindan CARI_KOD alani için RIGHT(CARI_KOD, 3) as BGRUP,
stok sabit veya stok hareketleri tablolarindan STOK_KODU için
SUBSTRING(STOK_KODU,4,3) as SGRUP ifadeleri ile yeni alanlar olusturup, bu alanlara göre GROUP BY olarak hazirlayacaginiz view'larda istediklerinizi alabilirsiniz
2. örnek'te vedigim '4' stok kodunun 4. karakterinden baslayip 3 uzunlugunda bir degeri bulacaktir. sizdeki stok_kodunun uzunluguna göre 4'ü degistirirsiniz
------------- Mehmet Baykan
|
Mesajı Yazan: kıl_ark
Mesaj Tarihi: 12 Ağustos 2009 Saat 09:07
arakadaslar netsiste sirket bilgilerinin tutuldugu bir tablo var mi?
|
Mesajı Yazan: sunaedis
Mesaj Tarihi: 12 Ağustos 2009 Saat 09:44
Evet tabiki var. NETSIS veritabaninda SIRKETLER30 tablosunda tutulmaktadir. Yeni bir data ataç ettiginde burayada eklemelisin.
------------- Suna EDİS YÜKSEL
Ozgan Bilişim Teknolojileri Eğitim ve Dan. Hiz.
|
Mesajı Yazan: kıl_ark
Mesaj Tarihi: 13 Ağustos 2009 Saat 17:06
tekrar merhaba
bir sorguda 2 farkli tablodan birlesim yapmadan yanyana veya alt alta gelecek sekilde raporlama alinabilirmi?
örn: kasa islemleri ile banka islemleri
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 15 Ağustos 2009 Saat 09:43
2 tablodan alinan kayitlari alt alta koymanin yolu, UNION ALL ile saglanir örnek
SELECT X1,X2, .. FROM TBLKASA
UNION ALL
SELECT Y1,Y2, .. FROM TBLBNKHESTRA
burada dikkat edilecek seçtigimiz sütun sayilarinin esit olmasi, ek olarak ayni tipten bilgilerin ayni sütunlara koymak. ama bu zorunlu degil.
2 tabloyu yanyana raporlamak için aklima ROW_COUNT() fonksiyonu geliyor. kuyllanimi için http://www.openwinforms.com/row_number_to_sql_select.html - bu link'e bakabilirsiniz.
iki tablodan ROW_COUNT() ile alinan sütunlar JOIN edilerek (full outer) bir SELECT yapilabilir örnek:
SELECT AA.*,BB.* FROM
(SELECT ROW_NUMBER() OVER (ORDER BY SIRA) AS SIRA,
TARIH,FISNO,[IO], ACIKLAMA,TUTAR
FROM TBLKASA WHERE TARIH='2009-08-11') AA FULL OUTER JOIN
(SELECT ROW_NUMBER() OVER (ORDER BY TARIH) AS SIRA,
TARIH,NETHESKODU,BA,ACIKLAMA,TUTAR
FROM TBLBNKHESTRA WHERE TARIH='2009-08-11') BB ON AA.SIRA=BB.SIRA
ikinci örnek'teki sütunlar istenildigi gibi ayarlanabilir , bir de WHERE ile verdigimiz kisit sadece tarih olmayabilir örnegin sadece BORC hareketleri yada belli bir bankanin kodu v.s. gibi
kolay gelsin
------------- Mehmet Baykan
|
Mesajı Yazan: kıl_ark
Mesaj Tarihi: 15 Ağustos 2009 Saat 10:02
ilginize tesekkür ederim
1. örnek kismen isimi görüyor peki ROW_COUNT() uygulamasinda tutar için sum kullanma imkani yok mu?
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 15 Ağustos 2009 Saat 10:15
kasa ve banka kayitlarindan nasil bir rapor istiyorsunuz, raporunuzun detayina göre farkli çözümler üretilebilir, benim aklima iki tablonun kayitlarina sira no verip bunlari ayni satirda eslemek geldi.
------------- Mehmet Baykan
|
Mesajı Yazan: kıl_ark
Mesaj Tarihi: 15 Ağustos 2009 Saat 10:24
örnegin
kasa bakiyesi, banka mevduat bakiyesi, banka kredi bakiyesi, pörtföy müsteri çekleri toplami vs.
bunlarin bir kismi alt alta bir kismi yanyana gelecek sekilde bir rapor hazirlamak istiyorum.
yani muhasebedeki bilanço benzeri aktif ve pasif yanyana olabilecek sekilde siralamak istiyorum.
1. örnektekini kullanarak alt alta yazmaya basladim fakat bitirdigim takdirde takilacagim bir nokta olacak. o da ara toplamlar.
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 15 Ağustos 2009 Saat 10:43
Anladigim kadariyla (bilanço benzetmesi yardimiyla) raporunuz suna benzeyecek
SIRA,DUZEY,HESAP, BORC1,BORC2 SIRA,DUZEY,HESAP,ALACAK1,ALACAK2
1 A A-HESAP 500 1 Z Z-HESAP 350
2 B BB-HESAP1 200 2 Y YY-HESAP 200
3 B BB-HESAP2 200 3 Y YY-HESAP2 150
4 B BB-HESAP3 100 4 Z Z-HESAP2 800
5 A A-HESAP2 289 5 Y YY-HESAP 300
6 B BB-HESAP 289 6 Y YY-HESAP2 200
7 7 Y YY-HESAP3 300
alt toplamlar dediginiz degerler düzey 'A' ya da 'Z' gibi durumda 'Ayri' sütunda olacak
benim verdigim ROW_COUNT() örnegi bu ise uyar
tabi bir sürü select'iniz olacak
size kolayliklar
------------- Mehmet Baykan
|
Mesajı Yazan: kıl_ark
Mesaj Tarihi: 15 Ağustos 2009 Saat 10:51
yani isim çok zor diyorsunuz
öyleyse sizden söyle bir yardim alsam
ben su anda
hesap tutar
a 100
b 200
c -100 iki sutunlu böyle bir tablo olusturdum buradan 3.sutuna aratoplam almak istiyorum yani
hesap tutar toplam
a 100
b 200
aratoplam 300
c -100
aratoplam -100 seklinde bir tablo olusturacagim. bu konuda yardimci olursaniz sevinirim.
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 15 Ağustos 2009 Saat 11:03
sorgunuzu 2 kere tekrarladiginiz bir yapi öneriyorum nedeni de ara toplamlari üst satira koymak istediginizi düsünerek, örnegi:
SELECT 'ARATOPLAM' AS KOD,0 AS TUTAR,SUM(TUTAR) AS TOPLAM FROM
(select A.CARI_KOD,SUM(BORC-ALACAK) AS TUTAR,0 AS TOPLAM
FROM TBLCAHAR A,TBLCASABIT B
WHERE A.CARI_KOD=B.CARI_KOD AND B.CARI_TIP='A'
GROUP BY A.CARI_KOD
) C
UNION ALL
select A.CARI_KOD,SUM(BORC-ALACAK) AS TUTAR,0 AS TOPLAM
FROM TBLCAHAR A,TBLCASABIT B
WHERE A.CARI_KOD=B.CARI_KOD AND B.CARI_TIP='A'
GROUP BY A.CARI_KOD
------------- Mehmet Baykan
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 15 Ağustos 2009 Saat 11:28
pardon yazimda ROW_COUNT() yazmisim tekrar okuyunca ROW_NUMBER() oldugunu gördüm. Dogrusu
ROW_NUMBER() SQL2005 ve sonrasinda var
------------- Mehmet Baykan
|
Mesajı Yazan: kıl_ark
Mesaj Tarihi: 15 Ağustos 2009 Saat 15:45
hesap tutar toplam
a 100
b 200
aratoplam 300
c -100
aratoplam -100 buradaki hesaptan maksat
hesap tutar toplam
pört.müsteri çekleri 100
pört.müsteri senet 200
aratoplam 300
borç çekleri -100
aratoplam -100
genel toplam 200
seklinde devam eden bir rapor. tutarlari aliyorum fakat ara toplam ve genel toplamda sikintim var. cümlelerden örnek
SELECT 'PÖRTFÖYDEKI MÜSTERI ÇEKLERI :', Sum(TBLMCEK.TUTAR) FROM TBLMCEK TBLMCEK WHERE ((TBLMCEK.SC_YERI='P') AND (TBLMCEK.SC_SONDUR='B'))
UNION ALL
SELECT 'PÖRTFÖYDEKI MÜSTERI SENETLERI :', Sum(TBLMSEN.TUTAR) FROM TBLMSEN TBLMSEN WHERE ((TBLMSEN.SC_YERI='P') AND (TBLMSEN.SC_SONDUR='b'))
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 15 Ağustos 2009 Saat 15:56
SELECT 'PÖRTFÖYDEKI MÜSTERI ÇEKLERI :' HESAP, Sum(TBLMCEK.TUTAR) TUTAR,0 AS TOPLAM
FROM TBLMCEK TBLMCEK
WHERE ((TBLMCEK.SC_YERI='P') AND (TBLMCEK.SC_SONDUR='B'))
UNION ALL
SELECT 'PÖRTFÖYDEKI MÜSTERI SENETLERI :', Sum(TBLMSEN.TUTAR),0
FROM TBLMSEN TBLMSEN
WHERE ((TBLMSEN.SC_YERI='P') AND (TBLMSEN.SC_SONDUR='b'))
UNION ALL
SELECT '*ARA TOPLAM :',0,SUM(TUTAR) AS TOPLAM FROM
(SELECT 'PÖRTFÖYDEKI MÜSTERI ÇEKLERI :' HESAP, Sum(TBLMCEK.TUTAR) TUTAR,0 AS TOPLAM
FROM TBLMCEK TBLMCEK
WHERE ((TBLMCEK.SC_YERI='P') AND (TBLMCEK.SC_SONDUR='B'))
UNION ALL
SELECT 'PÖRTFÖYDEKI MÜSTERI SENETLERI :', Sum(TBLMSEN.TUTAR),0
FROM TBLMSEN TBLMSEN
WHERE ((TBLMSEN.SC_YERI='P') AND (TBLMSEN.SC_SONDUR='b'))
) X
UNION ALL
SELECT 'BORÇ ÇEKLERI :' HESAP, -Sum(TBLBCEK.TUTAR) TUTAR,0 AS TOPLAM
FROM TBLBCEK TBLBCEK
WHERE ((TBLBCEK.SC_YERI='C') AND (TBLBCEK.SC_SONDUR='B')) --KOSULU YANLIS YAZMIS OLABILIRIM DÜZELTIN
UNION ALL
SELECT '* ARA TOPLAM :' HESAP, 0,-Sum(TBLBCEK.TUTAR) TOPLAM
FROM TBLBCEK TBLBCEK
WHERE ((TBLBCEK.SC_YERI='C') AND (TBLBCEK.SC_SONDUR='B')) --BU DA DÜZELECEK
-- GENEL TOPLAM IÇIN YUKARIDAKI SORGUNUN TAMAMI UNION ALL ILE BURAYA EKLENECEK
--
-- SELECT 'GENEL TOPLAM :',0,SUM(TOPLAM) FROM
-- ( yukaridaki '*ARA TOPLAM' li sorgulari aynen asagiya
-- ) XX parantez sonrasi X'ler önemli
--
------------- Mehmet Baykan
|
Mesajı Yazan: kıl_ark
Mesaj Tarihi: 15 Ağustos 2009 Saat 16:04
çok tesekkür ederim emegine ellerine saglik bugün seni çok yordum
tekrar tekrar tesekkür ederim
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 15 Ağustos 2009 Saat 16:25
birsey degil, cevabimi 2 kere düzelttim son halini göreceksiniz
------------- Mehmet Baykan
|
Mesajı Yazan: kıl_ark
Mesaj Tarihi: 31 Ekim 2009 Saat 16:33
merhaba
stok kartlarindaki tanimli kod_5 kayitlarini üretici kodu olarak kaydetmek istiyorum yani üretici koduna aktarmak istiyorum.
ne yapmaliyim veya nasil bir cümle yazmaliyim
update konusu burda geçtigi içiin yeni konu olusturmadim!!!
|
Mesajı Yazan: mummy_1499
Mesaj Tarihi: 01 Kasım 2009 Saat 16:57
öncelikle kod_5 sahasi degisti zaman bir triger çalistirp burda yazan kodu üretici kodu tablosuna insert etmen lazim. bunun içinde önce triger update te mi yoksa insert te mi çalisacak ona karar vermelisin.
CREATE TRIGGER URETICIKODU ON TBLSTSABIT
AFTER UPDATE
ILE BASLARSAN KOD_5 DEGISTIRILDIGINDE ISLEVE GIRER.
------------- MUHAMMET YILMAZ
0505 664 26 97
NETSİS PROJE UZMANI
|
Mesajı Yazan: mummy_1499
Mesaj Tarihi: 01 Kasım 2009 Saat 16:58
BU ARADA TRIGER ISINI BIRAZ DAHA ARASTIR BENCE
------------- MUHAMMET YILMAZ
0505 664 26 97
NETSİS PROJE UZMANI
|
|