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.