Tarih - Zaman Numara Baz İstasyonu Adı
01/01/2007 11:22:32 532*** 123456789 - IS12345 - BASAKSEHIR 1. ETAP TURK TELEKOM BINASI,İSTANBUL
01/01/2007 12:58:12 532*** 123456789 - IS12345 - BASAKSEHIR 2. ETAP TURK TELEKOM BINASI,İSTANBUL
01/01/2007 12:59:42 532*** 123456789 - IS12345 - BASAKSEHIR 2. ETAP TURK TELEKOM BINASI,İSTANBUL
01/01/2007 14:15:52 532*** 123456789 - IS12345 - BASAKSEHIR 3. ETAP TURK TELEKOM BINASI,İSTANBUL
01/01/2007 17:32:52 532*** 123456789 - IS12345 - BASAKSEHIR 5. ETAP TURK TELEKOM BINASI,İSTANBUL
01/01/2007 18:12:32 532*** 123456789 - IS12345 - BASAKSEHIR 7. ETAP TURK TELEKOM BINASI,İSTANBUL
01/01/2007 22:29:32 532*** 123456789 - IS12345 - BASAKSEHIR 9. ETAP TURK TELEKOM BINASI,İSTANBUL
01/01/2007 22:39:32 532*** 123456789 - IS12345 - BASAKSEHIR 2. ETAP TURK TELEKOM BINASI,İSTANBUL
02/01/2007 11:22:32 532*** 123456789 - IS12345 - BASAKSEHIR 1. ETAP TURK TELEKOM BINASI,İSTANBUL
02/01/2007 12:50:22 532*** 123456789 - IS12345 - BASAKSEHIR 2. ETAP TURK TELEKOM BINASI,İSTANBUL
02/01/2007 12:55:52 532*** 123456789 - IS12345 - BASAKSEHIR 2. ETAP TURK TELEKOM BINASI,İSTANBUL
02/01/2007 14:25:32 532*** 123456789 - IS12345 - BASAKSEHIR 3. ETAP TURK TELEKOM BINASI,İSTANBUL
02/01/2007 15:32:22 532*** 123456789 - IS12345 - BASAKSEHIR 5. ETAP TURK TELEKOM BINASI,İSTANBUL
02/01/2007 18:11:12 532*** 123456789 - IS12345 - BASAKSEHIR 7. ETAP TURK TELEKOM BINASI,İSTANBUL
02/01/2007 22:23:12 532*** 123456789 - IS12345 - BASAKSEHIR 9. ETAP TURK TELEKOM BINASI,İSTANBUL
02/01/2007 22:39:32 532*** 123456789 - IS12345 - BASAKSEHIR 3. ETAP TURK TELEKOM BINASI,İSTANBUL
Yukarıdaki gibi bir Oracle veritabanında numaranın her gün ilk olarak hangi bazda iken ilk görüşmesini yaptığını ve aynı gün hangi bazda iken son telefon görüşmesini yaptığını listelemek istiyorum. Yani sadece renkli işaretli olan satırları listelemek istiyorum. Tüm veriler tamamen hayali ve değiştirilmiştir. Yardımcı olabilecek veya fikir verebilecek arkadaşlara şimdiden teşekkürler.
Oracle-SQL- Tarihe göre ilk-son olan kayıtları görme
Re: Oracle-SQL- Tarihe göre ilk-son olan kayıtları görme
Şuna benzer bir query'yi dener misin?
Kod: Tümünü seç
SELECT
DISTINCT T1.TARIH, T1.ZAMAN, T1.NUMARA, T1.BAZ_ISTASYONU
FROM TABLO T1
INNER JOIN
(
SELECT
TARIH, NUMARA, MIN(ZAMAN) AS ZAMAN
FROM TABLO
GROUP BY TARIH, NUMARA
UNION
SELECT
TARIH, NUMARA, MAX(ZAMAN) AS ZAMAN
FROM TABLO
GROUP BY TARIH, NUMARA
) T2 ON T2.TARIH = T1.TARIH AND T2.ZAMAN = T1.ZAMAN AND T2.NUMARA = T1.NUMARA
Re: Oracle-SQL- Tarihe göre ilk-son olan kayıtları görme
Hakan Can arkadaşıma teşekkür ederim. Oldukça güzel bir SQL hazırlayıp göndermiş. Gönderdiğiniz SQL çalışıyor, sonucunda ilk ve son saat ayrı satırlarda geliyor. Ben aynı satırda görmeyi istemiştim. Bir VIEW create edip kayıtları önce orada filtreleyip daha sonra da o view'i kullanıp sonuçları aynı satırda getirmeyi başardım.
create or replace view ilk_son_saat as
select numara,tarih,min(t.zaman)isaat ,max(t.zaman) ssaat
from tablo t
group by numara,tarih
order by 1 asc,2 asc
Böylece her güne ait ilk ve son saatleri bulduk. Gelelim bunları kullanarak bu görüşmelerin nerelerde yapıldıklarını bulmaya..
select a.NUMARA ,a.tarih,b.zaman "İlk Gör.Saati" ,b.baz "İlk Gör.Cell",c.zaman "Son Gor.Saati",c.baz "Son Gör.Cell"
from ilk_son_saat as a ,tablo b, tablo c
WHERE (a.numara=b.numara and a.tarih=b.tarih and a.isaat=b.zaman)
and (a.numara=c.numara and a.tarih=c.tarih and a.ssaat=c.zaman)
group by a.numara,a.tarih,b.zaman,b.baz_numara,c.zaman,c.baz_numara
order by 1 asc,2 asc
Herkese kolay gelsin. Umarım benzer SQL lerde de yardımcı oluruz birbirimize.
create or replace view ilk_son_saat as
select numara,tarih,min(t.zaman)isaat ,max(t.zaman) ssaat
from tablo t
group by numara,tarih
order by 1 asc,2 asc
Böylece her güne ait ilk ve son saatleri bulduk. Gelelim bunları kullanarak bu görüşmelerin nerelerde yapıldıklarını bulmaya..
select a.NUMARA ,a.tarih,b.zaman "İlk Gör.Saati" ,b.baz "İlk Gör.Cell",c.zaman "Son Gor.Saati",c.baz "Son Gör.Cell"
from ilk_son_saat as a ,tablo b, tablo c
WHERE (a.numara=b.numara and a.tarih=b.tarih and a.isaat=b.zaman)
and (a.numara=c.numara and a.tarih=c.tarih and a.ssaat=c.zaman)
group by a.numara,a.tarih,b.zaman,b.baz_numara,c.zaman,c.baz_numara
order by 1 asc,2 asc
Herkese kolay gelsin. Umarım benzer SQL lerde de yardımcı oluruz birbirimize.