February 6, 2014 at 6:04 am
Hello,
I searched online and this forum and I am not convinced that I find the solution.
I am trying to write a TSQL statement as follows:
SELECT DISTINCT cs.SITE
, CASE WHEN cv.accepted = 1 AND cv.StepNo = 1 then 'Y'
ELSE CONVERT(varchar,[dbo].[fn_Get_WorkingDays] (ci.plannedinstalldt, -17))
FROM
dbo.Cy_SiteSurvey AS cs WITH (nolock)
INNER JOIN
dbo.Cy_Visit_Checklist AS cv WITH (nolock)
ON cv.SysSiteID = cs.SysSiteID
WHERE cv.Visit = 'V1'
This is returning two results. I am expecting only 'Y'. Is this a right way to write CASE statement? Thank you!
February 6, 2014 at 7:04 am
It is possible for a CASE block to change the number of rows returned by SELECT with DISTINCT.
Find a filter (a WHERE clause) which returns only rows which you think are affected, and test them using something like this:
SELECT --DISTINCT
cs.SITE,
cv.accepted,
cv.StepNo,
ci.plannedinstalldt,
CASE
WHEN cv.accepted = 1 AND cv.StepNo = 1 then 'Y'
ELSE CONVERT(varchar,[dbo].[fn_Get_WorkingDays] (ci.plannedinstalldt, -17))
END
FROM dbo.Cy_SiteSurvey AS cs WITH (nolock)
INNER JOIN dbo.Cy_Visit_Checklist AS cv WITH (nolock)
ON cv.SysSiteID = cs.SysSiteID
WHERE whatever
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden
February 10, 2014 at 7:26 am
I apologize but that did not work. I am still getting two records. I may have to dig deep in my JOINS. I do appreciate you taking a look into it. Again, thank you for your time and effort. Much appreciated!!
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy