Get Adobe Flash player

SQL Cimnastiği

SQL’de limit ile belli bir adet çekilen kaydı sıralamak.

Tablomuzdan 10 adet ile sınırlı veri çekmek istediğimizi varsayalım. Bu çektiğimiz verileri belli bir kritere göre sıralamak istiyoruz. sorgumuza ORDER BY ile bir kriter eklersek, bu kriteri uyguladıktan sonra 10 adet kayıt getireceği için istediğimiz sonuç dönmeyecek. Bizim istediğimiz, 10 adet kayıt çekelim, sonra bu kayıtları sıralayalım. Bunun için aşağıdaki gibi bir sorgu yazmamız gerekiyor.

select * from (SELECT * FROM `tablo` order by id limit 10) aliastablo order by kriter

sorguyu açıklayacak olursak,  SELECT * FROM `tablo` order by id limit 10 kısmı ile ilk 10 kaydı çekiyoruz, bunu aliastablo isimli bir tablo olarak isimlendiriyoruz. Böylece 10 kayıttan oluşan bir sanal tablomuz oluyor. Bu tablomuzda da ORDER BY işlemini uyguluyoruz.

Çözüm için Mesut Uğurlu’ya teşekkür ederim.

Share

SQL Gelir Gider Hesabı Sorgusu

Soru :

Sadeleştirilmiş şekli aşağıdakine benzer bir tablom var.

Tip Tutar Grup
1 100 1
1 200 2
0 23 1
1 16 1
0 110 2

Tip 1 ise gelir
Tip 0 ise gider

Gruplara göre tek seferde gelir toplamı, gider toplamı ve bakiyeyi SQL ile
nasıl alabilirim ?

yani

Grup Gelir Gider Bakiye
1 116 23 93
2 200 110 90

gibi sonuç döndüren bir sorgu lazım. Nasıl yapılır?

Devamını okuyun »

Share

Son girilen personel sayısı

Bir arkadaşım SQL ile ilgili bir soru sorunca, sık sık karşılaştığım SQL soru ve cevaplarını bir başlık altında toplayayım, belki birilerine faydası olur diye düşündüm.

id firma_id personel_sayisi
1 1 10
2 2 104
3 1 5
4 3 40
5 2 50
6 3 10

Yukarıdaki tablo örneğindeki gibi kayıtlar var. Bu kayıtlardan firma_id tekrar edebiliyor ama firmaların en son personel sayısını listelemek istiyorum. Her firmanın en son kaç personeli var? Devamını okuyun »

Share