Konuyu görüntüle
IUCODERS FORUM > Duyurular > Okul ile ilgili > veri tabanı dersi
Yazar
yasatmak


avatar

Kayıt: 14.02.2007
28.11.2007-22:20 #31883
arkadaslar sınav hep kod mu olacak yoksa tanim ve karsılastirmalardan da soracak mi hoca tecrubeli buyuklerimiz den cevap bekliyoruzprayingprayingpraying





Yazar
tuuba


avatar
Bursa
Kayıt: 22.01.2007
28.11.2007-22:35 #31887
fastman yazdi
 

Her bölümde,o bölümdeki ortalama maaştan daha yüksek maaş alanların
ad soyad ve sicil numaralarını listelyen SQL ifadesini yazınız.

SELECT
FROM Personel A B
WHERE brut > (

SELECT AVG(brut)
FROM personel
WHERE A.bol_no=B.bol_no

)


merhaba arkadaşlar bu kod dogrumu acaba?



SELECT ad,soyad,sicil_no
FROM personel;
GROUP By bol_no;
HAVING AVG(brut)<brut;

Arkadaşlar bu cevap olur mu bilmiyorum eğer olmazsa neden???????????
Özellikle Having'in kullanımını açıklayabilirseniz çok iyi olur...






Yazar
akgulozkan


avatar
istanbul
Kayıt: 12.12.2006
28.11.2007-22:50 #31890
tuuba yazdi
 


SELECT ad,soyad,sicil_no
FROM personel;
GROUP By bol_no;
HAVING AVG(brut)<brut;

Arkadaşlar bu cevap olur mu bilmiyorum eğer olmazsa neden???????????
Özellikle Having'in kullanımını açıklayabilirseniz çok iyi olur...


denedim.. olmuyobiggrinblushing..





Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
28.11.2007-23:00 #31893
tuuba'cım ilk önce noktalı virgülü bir kez sorgunun en sonunda kullanmalısın. ;)
Sorudaki cümleyi incelersen, bölüm başına 1'den fazla sonuç dönebileceğini görürsün (Bir bölümde o bölümdeki ortalama maaştan daha yüksek maaş alan personel sayısı 1'den fazla olabilir). Yani bu nedenle ana sorguda GROUP BY kullanmaman gerekir. HAVING'de ise, GROUP BY ile ayırdığın her tekil kayıt için kriter kontrolu yapılır ve kritere uymayan kayıtlar elenir.
Ruhumda hocalık mı var ne biggrin


Benim soruya cevabım:

SELECT *
FROM personel x
WHERE brut > (
SELECT avg( brut )
FROM personel
WHERE x.department_id = department_id
);

Bu sorgu mysql'de doğru sonuç veriyor ama standart mı bilmiyorum. Derste zeynep hoca içteki sorgunun dıştaki değerleri göremeyeceğini söylemişti ama burada x değeri içteki sorguya aktarıldı.


Evet, access'te de çalışıyor. Ama standart olup olmadığı konusu hala havada...





Let`s make this world a better place to live !

Yazar
vastani


avatar
istanbul
Kayıt: 14.12.2006
29.11.2007-01:43 #31917
fastman yazdi
 

Her bölümde,o bölümdeki ortalama maaştan daha yüksek maaş alanların
ad soyad ve sicil numaralarını listelyen SQL ifadesini yazınız.

SELECT
FROM Personel A B
WHERE brut > (

SELECT AVG(brut)
FROM personel
WHERE A.bol_no=B.bol_no

)


merhaba arkadaşlar bu kod dogrumu acaba?

CREATE VIEW BOL_ORT(Bol_no,ort_brut)
AS SELECT bol_no,AVG(Brut)
FROM personel
GROUP BY bol_no;

SELECT ad,soyad,sicil
FROM personel
WHERE (personel.bol_no=BOL_ORT.bol_no) AND brut>ort_brut;



bu alternatif olabilir mi





Yazar
yasatmak


avatar

Kayıt: 14.02.2007
29.11.2007-02:01 #31918
aferim lan vastaniapplauseapplauseapplause sonunda seninde ogrendigin bir dil olduapplauseapplauseapplause





1 2 3 4
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb