• 26-12-2008, 10:10:37
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    "Istanbul'da birden fazla şüpheli tarafından işlenen suçlar için şahit sayılarını veriniz. (sucno, şahitsayısı şeklinde)"

    Sorusunu cevaplayacak bir sorgu isteniyor.

    Tablolar :

    Suclar(sucno: int, tarih:date, yer:string, sehir:string, aciklama:string)
    Supheliler(supheliid:int, isim:string, dogumtarihi:date, adres:string, sehir:string)
    Sahitler(sahitid:int, isim:string, adres:string, sehir:string)
    Sucislemek(supheliid:int, sucno:int)
    Sahitolmak(sahitid:int, sucno:int)

    select count(sahitolmak.sahitid) from sahitler, sahitolmak, supheliler, sucislemek, suclar
    where
    supheliler.supheliid=sucislemek.supheliid and
    sahitler.sahitid=sahitolmak.sahitid and
    suclar.sucno=sucislemek.sucno and
    suclar.sucno=sahitolmak.sucno and
    suclar.sehir='istanbul'
    Buraya kadar geldim, devamını getiremedim.

    'ahmet cetin' işlediği suçlardan daha az sayıda suç işleyen suçluların adını veriniz.

    WITH hepsi(supheliid, sucislemek)
    select supheliler.supheliid, count(sucislemek.supheliid)
    from supheliler, sucislemek
    where supheliler.supheliid=sucislemek.supheliid
    group by supheliler.isim
    with ahmetbaba(sucislemek)
    select count(sucislemek.supheliid)
    from supheliler, sucislemek
    where supheliler.supheliid=sucislemek.supheliid and supheliler.isim='ahmet cetin'
    select supheliler.supheliid
    from supheliler, hepsi, ahmetbaba
    where supheliler.supheliid=hepsi.supheliid and sucislemek < ahmetbaba.sucislemek
    Bu soruyu da bu şekilde çözmeye çalıştım ama

    Alıntı
    WITH hepsi(supheliid, sucislemek)
    *
    ERROR at line 1:
    ORA-32033: unsupported column aliasing
    şeklinde bir hata verdi.

    Bu 2 sorguyu nasıl yapmam gerekiyor acaba ? (Oracle ortamında çalışıyorum)
  • 26-12-2008, 10:28:01
    #2
    Anlamadığım birşey var suçlar tablosunda suçu işleyenin ismi neden yok, o olursa sorunsuz bir şekilde halledilir diye düşünüyorum, ayrıca sorgularınızda toplam değerleri bulmak için sum kullanırsanız daha yararlı olur bence.
  • 26-12-2008, 10:35:15
    #3
    macchess adlı üyeden alıntı: mesajı görüntüle
    Anlamadığım birşey var suçlar tablosunda suçu işleyenin ismi neden yok, o olursa sorunsuz bir şekilde halledilir diye düşünüyorum, ayrıca sorgularınızda toplam değerleri bulmak için sum kullanırsanız daha yararlı olur bence.
    Bu şekilde verilmiş tablolar. Sucislemek tablosunda supheliid ve sucno ile ilişkilendirme yapılıyor. Daha sonra Supheliler tablosundan isim'e ulaşabiliyoruz. Count ile çözmeye çalışmıştım hep, sum deneyeyim bir de.
  • 31-12-2008, 12:49:12
    #4
    hepsi() dediğin ne öyle bi function mu var?
    oracle da allias eklemek istiosan şöyle yap orayı
    (supheliid||sucislemek) hepsi