DEFINITIONS

Definitions More Info.
Definition ID509
TitleSQL
CategoryNOTES
DefinitionBASIT TRANSACT SQL UYGULAMALARI
Definition Description--TRANSACT SQL UYGULAMALARI --Uygulama 1 use yuksel2 go create table musteri ( sno int PRIMARY KEY, ad varchar(50), sehir varchar(50) ) go insert into musteri values(1005,'yuksel','istanbul') insert into musteri values(1007,'aylin','ankara') insert into musteri values(1008,'nihat','ankara') insert into musteri values(1023,'gurcan','istanbul') insert into musteri values(1025,'emrah','bursa') insert into musteri values(1067,'temel','bursa') insert into musteri values(1093,'sevda','istanbul') --truncate table musteri create table sehirler ( sno int PRIMARY KEY, sehir varchar(50) ) -- A)-öyle bir sql ifadesi yazalım ki, en kısa şekilde müşteri tablosundaki şehir sütun adları şehirler tablosundaki şehir sütununa kopyalansın. -- ancak birden fazle olan şehir adları,tek olarak gitsin. insert into sehirler (sehir) select distinct sehir from musteri -- Uygulama 2 -- Ürün adları ve satış miktarları olan meyva isimleri tablonun tasarımı ve içindeki kayıtlar şekildeki gibidir create table meyva ( urunad nchar(10), miktar int ) go insert into meyva values ('elma',50) insert into meyva values ('armut',10) insert into meyva values ('kiraz',5) insert into meyva values ('armut',7) insert into meyva values ('elma',4) insert into meyva values ('kiraz',3) insert into meyva values ('muz',20) insert into meyva values ('muz',10) -- Görmek istediğimiz, toplam miktarı 20 birimden fazla ürün adları ve toplam miktarları select urunad,sum(miktar) TotalMiktar from meyva group by urunad having sum(miktar)>20 -- Uygulama 3 /* Bir satış firması için veritabanı geliştiriyorsunuz. Bu veri tabanında 'satışeleman' isismli bir tablo var ve gerçekleştirdikleri satış miktarı ile satış elemanının isim bilgileri bulunuyor. Satış müdürü sizden, toplamda en yüksek 2 satış gerçekleştiren kişilerin listesini istiyor. Yani cirosu en yüksek ilk 2 kişinin listesi. Bunun için nasıl bir sorgulama geliştrimeniz gerekiyor */ -- ilk önce aşağıdaki gibi satışeleman tablomuzu tasarlayarak şekildeki gibi kayıtlar girelim. create table satiseleman ( satiselemanad nchar(10) NULL, satistutari money NULL ) go insert into satiseleman values('nobre',450) insert into satiseleman values('alex',250) insert into satiseleman values('nobre',250) insert into satiseleman values('alex',450) insert into satiseleman values('ümit',150) insert into satiseleman values('tuncay',400) insert into satiseleman values('ümit',200) insert into satiseleman values('tuncay',300) insert into satiseleman values('anelka',200) go select top 2 satiselemanad,sum(satistutari) totalSum from satiseleman group by satiselemanad order by totalSum desc /* ÜSTTEKİ UYGULAMANIN DEVAMI En yüksek satış yapan iki kişi göründü. Ancak Tablo incelendiği zaman bu değere ulaşan bir kişi daha var. O da Tuncay isimli satış elemanı. Ancak kodumuz gereği, ilk ikisini aldı. İşte bu durumda, uzantısı bitene kadar listelemeye devam etmesini sağlayan WITH TIES ifadesini aşağıdaki gibi kullanmamız gerekir. Bunun sonucunda listeye tuncay isimli satış elemanı da dahil olacaktır. WITH TIES ifadesini kullanabilmek için mutlaka ORDER BY ifadesinin olması gerekir. */ select top 2 WITH TIES satiselemanad,SUM(satistutari) totalSum from satiseleman group by satiselemanad order by totalSum desc
RecordBycunay
Record Date27-05-2014 00:18:57
Düzenle
Kopyala
Sil