CTE – Common Table Expressions Issue

Rendte ind i et mindre, ikke så vel dokumenteret, problem i dag da jeg ville anvende Common Table Expressions (CTE) i et T-SQL testscript.

Min konstruktion var som følger:

DECLARE @Count AS INT 
WITH
EmployeesWithSameBirthDate ( ID, [Count] ) AS
(
SELECT
dbo.HumanResources.Employee.EmployeeID
, COUNT( dbo.HumanResources.Employee.BirthDate ) AS [Count]
FROM dbo.HumanResources.Employee 
GROUP BY dbo.HumanResources.Employee.EmployeeID 
HAVING COUNT( dbo.HumanResources.Employee.BirthDate ) > 1
)

SET
@Count = ( SELECT COUNT( 0 ) FROM EmployeesWithSameBirthDate )
IF ( @Count > 0 )
BEGIN
–Bla bla bla
END
ELSE
BEGIN
–Bla bla bla
END

Problemet er, at man kun kan kalde CRUD’s direkte efter CTE’en er oprettet, og dermed ikke ‘SET @Count = …’

Løsningen i denne situation er at erstatte linien hvor @Count bliver assignet med følgende statement:

SELECT @Count  = COUNT( 0 ) FROM EmployeesWithSameBirthDate

Lavprisvvs.dk, de er da for fede, på den fede måde…

Det er efterhånden et stykket tid siden jeg har skrevet sidst, men denne historie er for god til at gå tabt.
I min evige søgen på lokummer, eller, da vi stod og skulle have nyt toilet drønede jeg rundt på nettet for at finde ud af hvad sådan noget koster. Der faldt jeg over et knald godt tilbud, faktisk et gratis toilet (se billede).

Gratis toilet hos Lavprissvvs.dk
Gratis toilet hos Lavprissvvs.dk

Ærlig som jeg er, skriver jeg så til lavprisvvs, om de er klar over, at de rent faktisk giver toiletter bort. Svaret jeg får tilbage er, at det var en bommert fra deres side. Og hvis jeg ville være så flink at sende min adresse, ville de honorere min opdagelse med et par biografbilletter.  Jeg skriver selvfølgelig min adresse tilbage, og noterer, at jeg nok har i sinde at købe toilettet, på trods af at det nu nok kommer til at koste penge. Lavprisvvs svarer, at de har lavet et specialtilbud til mig, hvor det er nedsat med ca. 10% i fht. en allerede nedsat pris på ca. 40%.

Fantastisk service!!