Union nasıl

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Union nasıl

Mesaj gönderen pentiumkivanc »

Merhaba;
yazacağım scriptle yapılan her işlemi tarih ve yapılan işleme göre kaydetmek istiyorum. burada yapılan işlemden kasıt kullanıcının girdiği sayfa.

Daha sonra bununla ilgili bir analiz yapmak istiyorum. Örneğin hangi gün o işlemin kaç defa yapıldığını bilmek istiyorum. Bunun için

Kod: Tümünü seç

select count(*) as toplam,left(tarih,10) as tr,sayfa from log group by sayfa,left(tarih,10)
bu şekildeki bir scriptin çıktısı
Toplam Tarih Sayfa
----------------------------
145 01.06.2005 sayfa1
36 02.06.2005 sayfa1
171 31.05.2005 sayfa1
2 01.06.2005 sayfa2
1 31.05.2005 sayfa2
1 31.05.2005 sayfa3
81 01.06.2005 sayfa4
16 02.06.2005 sayfa4
87 31.05.2005 sayfa4
31 01.06.2005 sayfa5
7 02.06.2005 sayfa5
62 31.05.2005 sayfa5
1 31.05.2005 sayfa6
13 01.06.2005 sayfa7
hangi sayfaya hangi tarihte kaç kez girilmiş belli oluyor. Ama ben aynı zamanda yukarıdaki örnek için sayfa1 in aynı gün içinde maksimum kaç kez ziyaret edildiğini de bu sorgu içinde öğrenmek yani sonuç şöyle olmalı
Toplam Tarih Sayfa Maks
-----------------------------------------
145 01.06.2005 sayfa1 171
36 02.06.2005 sayfa1 171
171 31.05.2005 sayfa1 171
2 01.06.2005 sayfa2 2
1 31.05.2005 sayfa2 2
....
...
Bunu

Kod: Tümünü seç

select count(*) as tp,left(tarih,10) as tr,sayfa, (select max(tp) from (select count(*) as tp from log where sayfa=t1.sayfa)) as maks from log t1 group by sayfa,left(tarih,10)
şeklinde yapınca hata alıyorum. Acaba bu istediğimi tek sorguda yapabilirmiyim?

Veritabanı access
sorgu ise asp ile alınıyor
Cevapla