Konu Araçları | Konu Seçenekleri | Gösterim Stili
Tarih
01/06/2010 14:55
Konu Sahibi
ahmetbaskesen
Yorumlar
3
Okunma
2978
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy
Kullanici Avatari

ahmetbaskesen

Üye
 35
 17
 4
 03/05/2010
0
 Belirtilmemiş
 
 Belirtilmemiş
 01/06/2010,16:00
select kategori, tanim
from mallar left join göstermek on göstermek.invnr=mallar.invnr
group by kategori, tanim,göstermek.invnr
having count(*) = (select count(*)
from gösterimodalari)


arkadaslar soru BÜTÜN gösterimodalarinda gösterilen mallarin hangi kategoriye ayit oldugunu ve tanimini bulmak(ceviride kusurum olduysa af ola almancadan cevirdim) sorunun cevabi bu dogru ama anlamadigim bütün gösterimodalari derken neden count(*) having de kullaniliyor count(*) yaptigim zaman sadece o alanda bulunan ögelerin sayisini bulmus olmazmiyim????


yardimlariniz icin simdiden tesekkür ederim


ahmetbaskesen, 03-05-2010 tarihinden beri AccessTr.neT üyesidir.

Kullanici Avatari

ercansahin

Uzman
ER.... ŞA....
 44
 3.740
 69
 14/11/2008
 Bursa
 
 Ofis 2010 32 Bit
 27/11/2018,13:27
Alıntıdır..

Alıntı:HAVING:

HAVING (SAHİP)

Gruplandırarak kümeleme fonksiyonunu uygularken koşulda verilebilir.Bu durumda grup üzerindeki hesaplamalarla ilgili koşul belirtilirken HAVING (SAHİP) sözcüğü kullanılır.

ÖRNEK: En yüksek maaşın 9000000’dan fazla oldugu bölümlerdeki personele ait ortalama maaşları listele.

SELECT böl_no,AVG (brüt)
FROM personel
GROUP BY böl_no
HAVING AVG(brüt)> 9000000;

HAVING sözcüğü SELECT konusunda GROUP BY bulunmadığı zaman geçersizdir. HAVING sözcüğünü izleyen ifade içinde SUM , COUNT(*) ,AVG, MAX yada MIN fonksiyonlarından en az biri bulunmalıdır.
HAVING sözcüğü sadece gruplanmış veriler üzerindeki işlemlerde geçerlidir.
WHERE sözcüğü bir tablonun tek tek satırları üzerinde işlem yapan koşullar içinde geçerlidir.
Bazı durumlarda HAVING ve WHERE sözcükleri ile birlikte SELECT komutu içinde kullanılabilir.

ÖRNEK: Personel tablosu içinde her bölümde erkek personele ait maaşlar için ortalamanin 9000000’dan fazla oldugu bölümleri listele.

SELECT böl_no, AVG (brüt)
FROM personel
WHERE cins= .T.
GROUP BY böl_no
HAVING AVG (brüt) > 9000000;



Kullanici Avatari

Seruz

Uzman
SE.... UZ....
 47
 1.564
 7
 30/10/2008
814
 Tekirdağ
 BT Şefi
 Ofis XP
 30/11/2018,14:06
Alıntı:Soru: Bütün gösterimodalari 'nda gösterilen mallarin hangi kategoriye ait oldugunu ve tanimini bulmak

Kod:
select kategori, tanim
from mallar left join göstermek on göstermek.invnr=mallar.invnr
group by kategori, tanim, göstermek.invnr
having count(*) = (select count(*) from gösterimodalari)


mallar ve göstermek tablosu ilişkilendirilmiş,
(göstermek ve gösterimodalari adlı tablolar arasındaki ilişkiyi göremiyoruz ama sanırım ikisi aynı tablo, aynı veriler)

having count(*) ile sadece ilgili grup'taki (group by kategori, tanim, göstermek.invnr) kayıt sayısı bulunuyor
ve gösterimodalari tablosundaki kayıt sayısı (select count(*) from gösterimodalari) ile karşılaştırılıyor.

having count(*) , o malın tüm göstermek tablosundaki kayıtlarını gösteriyor.
örneğin; gösterimodalari tablosunda 5 adet kayıt olduğunu kabul edersek,
having count(*) = 5 olan kayıtlar tüm göstermek adlı tablodaki kayıtlarda var demektir.

Umarım anlatabilmişimdir.


Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs

Kullanici Avatari

demirduygu

Üye
 Belirtilmemiş
 3
 0
 18/05/2012
0
 Adıyaman
 
 Ofis 2007
 31/05/2012,12:10
ben de size örnek vereyim
HAVİNG: Gruplandırılmış verilerin var olan koşula sahip olup olmadı kontrolu yapılır. Bu ifade genellikle sum(), avg, min(), max() , vs. gibi ifadeler ile kullanılır.
Örnek1: Mal sağlayan firmanın 100 den büyük olanları getir.
SELECT SUM(Quantity)SupplierID FROM [Order Details] GROUP BY ProductID
HAVING SUM(Quantity)>100

Örnek2: 30.01.1990 yılından sonra işe başlıyanların ortalama ücreti hesaplanmak istenirse;
Select AVG (aylik_ücret) From ucretler Where baslama_tarih>'30.01.1990';
Örnek3:Hurma siparişini 700 den çok verenleri getir.
SELECT SUM(Quantity)Orderdate FROM [Order Details] GROUP BY ProductID
HAVING SUM(Quantity)>700
kolayy gelsin hepinize
Img-grinImg-grin




Konuyu Okuyanlar: 1 Ziyaretçi

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  SQL Server 2008 R2 Evaluation hakkında soru? assenucler 5 2.246 17/05/2012, 10:40
Son Yorum: assenucler
  access vs sql soru bankasi ahmetbaskesen 3 3.142 26/05/2010, 13:05
Son Yorum: Taruz
  sql tablosu(basit bit soru grrr) ahmetbaskesen 14 5.559 04/05/2010, 14:11
Son Yorum: ahmetbaskesen
  access ten sql e bağlanırken çıkan soru linux2ex 6 3.959 16/02/2010, 23:01
Son Yorum: linux2ex

Türkçe Çeviri: MCTR, Yazılım: MyBB, © 2002-2018 MyBB Group.
123444