tabloyu SQL Server'de döndürme
Bu makalede, SQL Server'da bir tablonun nasıl döndürüldiği açıklanır.
Özgün ürün sürümü: SQL Server
Özgün KB numarası: 175574
Özet
Bu makalede bir SQL Server tablosunun nasıl döndürüldiği açıklanır. adlı QTRSALES
bir tablonuz olduğunu varsayalım. Tabloda , QUARTER
ve AMOUNT
sütunları YEAR
ve verileri aşağıdaki biçimdedir.
Not
1996'nın dördüncü çeyreği için satır yoktur:
Yıl | Çeyrek | Tutar |
---|---|---|
1995 | 1 | 125,000.90 |
1995 | 2 | 136,000.75 |
1995 | 3 | 212,000.34 |
1995 | 4 | 328,000.82 |
1996 | 3 | 728,000.35 |
1996 | 2 | 422,000.13 |
1996 | 1 | 328,000.82 |
Şimdi, verileri aşağıdaki biçimde görebilmek için tabloyu döndürmek istediğinizi varsayalım:
YIL | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|
1995 | 125,000.90 | 136,000.75 | 212,000.34 | 328,000.82 |
1996 | 328,000.82 | 422,000.13 | 728,000.35 | 0.00 |
Tabloyu döndürmek için kullanacağınız sorgu bu makalenin sonraki bölümündedir.
Tabloyu döndürmek için örnek sorgu
Tabloyu döndürmek için kullanacağınız sorgu aşağıdadır:
SELECT YEAR,
Q1= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 1 AND YEAR =
Q.YEAR),0),
Q2= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 2 AND YEAR =
Q.YEAR),0),
Q3= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 3 AND YEAR =
Q.YEAR),0),
Q4= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 4 AND YEAR =
Q.YEAR),0)
FROM QTRSALES Q
GROUP BY YEAR
Büyük tablolar için sorgu
Büyük tablolar için bu sorgu daha hızlı olacaktır:
SELECT YEAR,
SUM(CASE quarter WHEN 1 THEN amount ELSE 0 END) AS Q1,
SUM(CASE quarter WHEN 2 THEN amount ELSE 0 END) AS Q2,
SUM(CASE quarter WHEN 3 THEN amount ELSE 0 END) AS Q3,
SUM(CASE quarter WHEN 4 THEN amount ELSE 0 END) AS Q4
FROM qtrsales q
GROUP BY YEAR
Başvuru
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin