Anasayfa / Yazılım / SQL / HAVING ve WHERE Deyimlerinin Değişkenler İle Birlikte Kullanımı
admin 23 Mayıs 2013	SQL 1 Yorum 1,821 Views
Bu yazımda MS SQL ortamında oluşturmuş olduğumuz değişkenleri WHERE ve HAVING deyimleri ile birlikte kullanacağım. Örneklere geçerek konuya devam edelim. AdventureWorks2012 veri tabanı üzerinde çalışıyorum.
Örneğin bir adet ID değişkeni oluşturalım, bu ID değişkeni içine bir değer atalım. Daha sonra bu ID değerinin içindeki değeri baz alarak, Person.Person tablosunda BusinessEntityID değeri bu değere eşit olan satırın BusinessEntityID, FirstName ve LastName kolonlarını listeleyelim.
DECLARE @ID INT; SET @ID = 3;
SELECT BusinessEntityID, FirstName, LastName FROM Person.Person
Şimdi de Ad adında NVARCHAR tipinde bir değişken oluşturağım ve bu değişken içine Ab% değerini atayacağım. Daha sonra SELECT ile sorgumda bu değişkeni WHERE ile filtrelemede kullanacağım. Bunun için yine Person.Person tablosu üzerinde çalışıyorum. Person.Person tablosunda FirstName alanı Ab ile başlayan devamı ne olursa olsun tüm veri satırlarının BusinessEntityID, FirstName ve LastName alanlarını listeliyorum.
DECLARE @Ad NVARCHAR(50); SET @Ad = N'Ab%';
WHERE FirstName LIKE @Ad ORDER BY BusinessEntityID
Şimdi birde bir değişken daha oluşturalım ve bu değişkene önce 1 değerini daha sonra 0 değerini verelim ve bu değerleri baz alarak yine Person.Person tablosu üzerinde BusinessEntityID, FirstName, LastName alanlarını listeleyelim.
WHERE @ID = CASE @ID WHEN 0 THEN 0 ELSE BusinessEntityID END;
Sonuçlardan görüleceği üzere ID değerine 1 verdiğimde BusinessEntityID değeri 1’e eşit olan satır listeleniyor. Ama ben bu değeri 0 yaptığımda BusinessEntityID değeri 0 olan olmadığı için hepsini listeliyor.
Şimdi de HAVING ile birlikte değişken kullanalım. Bunun içinde Sales.SalesOrderHeader tablosunda TotalDue alanındaki toplam değeri 20000’den fazla olan satırları listeleyelim. Bu 20000 değerini bir değişken içine alalım. Sorgumuz şu şekilde olur:
DECLARE @Miktar INT = 20000;
SELECT SUM(TotalDue) AS 'Toplam Satış Miktarı', CustomerID
HAVING SUM(TotalDue) > @Miktar;
Tags HAVING ve WHERE Deyimlerinin Değişkenler İle Birlikte Kullanımı mssql değişkenlerin kullanımı mssql having mssql where sql değişkenler sql having sql where
Previous Çoklu Parametre Kullanarak Metotların Oluşturulması – En Büyük Sayıyı Bulma
Next Buluttaki ofisinize geçmeye hazır mısınız?
16:17 / 10 Şubat 2019
Kolay gelsin işin içinden çıkamadığım bir sorgu var yardımcı olabilir misin? hareketler adında bir tablom var no(int),personelid(int),tarih(date),saat(time(7)) şeklinde kolonlarım var benim yapmak istediğim sorgu aynı gün içinde tekrarlanan personelid satırlarını almak istiyorum
SELECT no, personelid, tarih, diger
WHERE (tarih IN
FROM hareketler AS h
HAVING (COUNT(tarih) > 1)))
bu sorgu ile aynı günleri çektirebiliyorum fakat personelid tek olmasına rağmen getiriyor ben personelid birden fazla ise bana no kolonunu getirmesini istiyorum şimdiden teşekkür ederim