Yazar |
|
tuuba
Bursa
Kayıt: 22.01.2007 |
|
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
istanbul
Kayıt: 12.12.2006 |
|
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.. olmuyo..
|
|
Yazar |
|
clairvoyant
Antalya
Kayıt: 05.05.2006 |
|
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
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
istanbul
Kayıt: 14.12.2006 |
|
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
Kayıt: 14.02.2007 |
|
aferim lan vastani sonunda seninde ogrendigin bir dil oldu
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| |