SQL Server’da No Column Name Was Specified For Column Hatası

Herkese merhaba,

Bu yazıda sizlere SQL Server’da no column name was specified for column hatası hatasından bahsedeceğim.

Bu hata kısa ve öz olarak subquery kullanımlarında başa gelen bir hatadır. Subquery yani iç sorgu içerisinde bir hesaplama yapılmış fakat bu hesaplama yapılmış alana alias verilmemesi sonucu ortaya çıkar. Hatalı örneği Northwind veritabanını kullanarak inceleyelim.

SELECT  tbl1.CategoryID,tbl2.ProductID
FROM    

( SELECT    SUM(UnitsInStock) AS Stok ,
                    CategoryID ,
                    ProductID
          FROM      dbo.Products
          GROUP BY  CategoryID ,
                    ProductID
        ) AS tbl1

        LEFT OUTER JOIN
		
		 ( SELECT    SUM(Quantity) ,
                                    [Order Details].ProductID
                          FROM      dbo.[Order Details]
                                    INNER JOIN dbo.Products ON Products.ProductID = [Order Details].ProductID
                          GROUP BY  [Order Details].ProductID
                        )  AS tbl2 ON tbl1.ProductID = tbl2.ProductID

Sorguyu Northwind veritabanını kullanarak çalıştırdığımız zaman hata alacağız. Sebebi Sum(Quantity) kısmına takma ad yani alias vermemekten kaynaklanmıştır. Çözümü basittir. Alias yani takma ad verilince sorgumuz başarılı şekilde çalışacaktır. Çalışan örneği aşağıda görmektesiniz.

SELECT  tbl1.CategoryID,tbl2.ProductID,tbl2.Toplam
FROM    

( SELECT    SUM(UnitsInStock) AS Stok ,
                    CategoryID ,
                    ProductID
          FROM      dbo.Products
          GROUP BY  CategoryID ,
                    ProductID
        ) AS tbl1

        LEFT OUTER JOIN
		
		 ( SELECT    SUM(Quantity) AS Toplam ,
                                    [Order Details].ProductID
                          FROM      dbo.[Order Details]
                                    INNER JOIN dbo.Products ON Products.ProductID = [Order Details].ProductID
                          GROUP BY  [Order Details].ProductID
                        )  AS tbl2 ON tbl1.ProductID = tbl2.ProductID

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir

Ads Blocker Image Powered by Code Help Pro
Reklam Eklentisi Kullanıyorsunuz

Lütfen bizlere destek için reklam eklentisi olmadan sitemizi ziyaret edin.

Şimdiden teşekkür ederiz.