*Merhaba, * *SQL sorunuz güzel :) Bir arkadaşım bu konuda aşağıdaki çözümü önerdi size. Bu kod, Oracle üzerinde çalışan bir koddur.*
ADIM 1: GEÇİCİ TABLOYU OLUŞTURALIM =================================== CREATE TABLE VERILER.SAHA_01 ( ID NUMBER(10), TIP VARCHAR2(50 BYTE) ) ADIM 2 : Tip bazında en son kaydı bul =================================== CREATE OR REPLACE FORCE VIEW VERILER.SAHA_MAX ( TIP , MAX_ID ) AS ( SELECT VERILER.SAHA_01.TIP, MAX (VERILER.SAHA_01.ID) AS MAX_ID FROM VERILER.SAHA_01 GROUP BY VERILER.SAHA_01.TIP) WITH CHECK OPTION; ADIM 3 : Tip bazında sondan 2. kaydı bul (iyi ki sadece son iki kaydı istedin) =================================== CREATE OR REPLACE FORCE VIEW VERILER.SAHA_MAX_2 ( TIP , MAX_ID ) AS ( SELECT VERILER.SAHA_01.TIP, MAX (VERILER.SAHA_01.ID) AS MAX_ID FROM VERILER.SAHA_01, VERILER.SAHA_MAX WHERE VERILER.SAHA_01.ID <> VERILER.SAHA_MAX.MAX_ID AND VERILER.SAHA_MAX.TIP = VERILER.SAHA_01.TIP GROUP BY VERILER.SAHA_01.TIP) WITH CHECK OPTION; ADIM 4 : 2 ile 3'ü birleştir =================================== CREATE OR REPLACE FORCE VIEW VERILER.SAHA_MAX_3 ( TIP , MAX_ID ) AS (SELECT VERILER.SAHA_MAX.TIP, VERILER.SAHA_MAX.MAX_ID FROM VERILER.SAHA_MAX UNION ALL SELECT VERILER.SAHA_MAX_2.TIP, VERILER.SAHA_MAX_2.MAX_ID FROM VERILER.SAHA_MAX_2) WITH CHECK OPTION; ADIM 5 : SORGUYU ÇALIŞTIR =================================== select VERILER.SAHA_MAX_3.MAX_ID, VERILER.SAHA_MAX_3.TIP from VERILER.SAHA_MAX_3 order by 2, 1 ; Selamlar, Nuri Akman 6 Mart 2013 13:02 tarihinde Hakan Karas <hakan.ka...@innotrend.com.tr>yazdı: > Özgür Bey linki inceledim ama ben bu iişlemi kendi sorguma uygun nasıl > yazacağımı anlayamadım. Rica etsem basit bir örnekle yazabilir misinz. > > Kolay gelsin > > > > 2013/3/6 Omer Barlas <o...@barlas.com.tr> > >> recursive bir sorgu kolayca yapılır. detayları şuradan okuyabilirsin; >> >> http://msdn.microsoft.com/en-us/library/ms186243%28v=sql.105%29.aspx >> >> >> 6 Mart 2013 11:41 tarihinde Hakan Karas <hknka...@gmail.com> yazdı: >> >>> Selamlar herkese >>> >>> Benim sql de içinde çok büyük veri olan bir tabloya kısıtlı bir sorgu >>> atmam lazım. Tablom aşağıdaki gibi. Amacım tip alanında kaç tane aynı tip >>> olursa olsun bana son 2 tane kaydı getirsin. Bu sorguyu nasıl yazabilirm >>> yardımcı olabilir misiniz. Ms sql server 2008 kullanıyorum. >>> >>> *Örn Tablom >>> id tip* >>> 1 A >>> 2 A >>> 3 A >>> 5 C >>> 4 A >>> 6 D >>> 7 C >>> 8 C >>> 9 D >>> >>> *Almak istediğim çıktı >>> id tip* >>> 3 A >>> 4 A >>> 7 C >>> 8 C >>> 6 D >>> 9 D >>> >>> _______________________________________________ >>> Linux-programlama mailing list >>> Linux-programlama@liste.linux.org.tr >>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama >>> Liste kurallari: http://liste.linux.org.tr/kurallar.php >>> >>> >> >> >> -- >> Omer Barlas >> o...@barlas.com.tr >> >> _______________________________________________ >> Linux-programlama mailing list >> Linux-programlama@liste.linux.org.tr >> https://liste.linux.org.tr/mailman/listinfo/linux-programlama >> Liste kurallari: http://liste.linux.org.tr/kurallar.php >> >> > > _______________________________________________ > Linux-programlama mailing list > Linux-programlama@liste.linux.org.tr > https://liste.linux.org.tr/mailman/listinfo/linux-programlama > Liste kurallari: http://liste.linux.org.tr/kurallar.php > >
_______________________________________________ Linux-programlama mailing list Linux-programlama@liste.linux.org.tr https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php