MS SQL Server kullanıyorum. Şu anda, çalışan sayısı çekmek için bir sorgu üzerinde çalışıyorum. Bu işlemde, geçici tablolar oluşturuyorum, ancak yalnızca bir kez sorguyu çalıştırabildiğimi fark ettim. Değişiklikler yaptıktan sonra tekrar çalıştırmayı denerseniz, bana 'Veritabanında' # Test1 'adlı bir nesne zaten var.Sıcaklık Tablosu'nu Birden Çok Kez Çalıştırmak İçin
My SQL şuna benzer:
SET NOCOUNT ON SET ANSI_WARNINGS OFF
IF OBJECT_ID('Tempdb..#Headcount') IS NOT NULL
Drop Table #Test1
Select Coalesce(Enddate,GETDATE()) as EndDate1,FirstName,LastName,EmployeeID,CostCenter,JobCode, CompanyCode
Into #Test1
from EmployeeDM.dbo.vEmployeeJobReporting EJ
--Group By FirstName,LastName,EmployeeID,CostCenter
Order by 1
IF OBJECT_ID('Tempdb..#Headcount') IS NOT NULL
Drop Table #Final1
Select max(EndDate1) as Date1, FirstName,LastName,EmployeeID,CostCenter,JobCode, CompanyCode
Into #Final1
From #Test1
Group by FirstName,LastName,EmployeeID,CostCenter,JobCode, CompanyCode
Order by 1
SELECT F.CostCenter,F.FirstName,F.LastName, F.Date1, F.CompanyCode, F.JobCode,F.EmployeeID,(t3.Day_of_Month-t2.Day_of_Month+1)*1.0/t4.Day_of_Month as Headcount,
Case
son Select ifadesi olmayan geçici tablo sorgunun başlangıcıdır. Bir satırda birden çok kez çalışabilmek için kodda ne yapabilirim/yazabilirim? Ayrıca, aldığım hata:
Msg 2714, Düzey 16, Durum 6, Satır 4 Veritabanında '# Test1' adlı bir nesne zaten var.
Teşekkürler!
Peki ... İlk kontrolünüz # Test1'i bırakıyor ancak sadece #Headcount varsa. belki bu sorun nedir? Aynı şeyi tekrar # Final1 için yapıyorsun. –
Ve sadece bir öneri ... gerçekten sıra sıraları yerine sütun isimleriyle sipariş vermelisiniz. Sorgunuzu değiştirirseniz, siparişin yanlış olması nedeniyle yanlış veriler alabilirsiniz. –
Öneriyi takdir edin! Evet, sorunun bir parçasıydı. –