having sql soru?
Tarih
01/06/2010 14:55
Konu Sahibi
ahmetbaskesen
Yorumlar
3
Okunma
2450
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



ahmetbaskesen
Üye
Kullanici Avatari
Üye
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.
Cevapla


ercansahin
BlackEagle
Kullanici Avatari
Uzman
E.... Ş....
3.739
14/11/2008
Ankara
Ofis 2010 32 Bit
07/12/2016,23:51
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;
Cevapla


Seruz
Uzman
Kullanici Avatari
Uzman
S.... U....
1.544
7
30/10/2008
804
Tekirdağ
Ofis XP
02/12/2016,15:18
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
Cevapla


demirduygu
Üye
Kullanici Avatari
Üye
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
Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi


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


Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya