- T-SQL Case Statement confusion
- SELECT CASE
- WHEN bitdelivered = 1 THEN
- '' + CONVERT(CHAR(10), deliv.dtmdeliverydate, 101)
- + ' '
- + 'þ' + '
- ' -- this is a carriage return, do not remove it
- WHEN bitdelivered = 0 AND deliv.dtmdeliverydate < Getdate() THEN
- '' + CONVERT(CHAR(10), deliv.dtmdeliverydate, 101)
- + ' '
- + '¨' + '
- '
- ELSE
- '' + CONVERT(CHAR(10), deliv.dtmdeliverydate, 101)
- + ' '
- + '¨' + '
- '
- END
- select
- CONVERT(CHAR(10), deliv.dtmdeliverydate, 101) +
- ' ' +
- CASE
- WHEN bitdelivered = 1 THEN 'þ'
- ELSE '¨'
- END + '
- '
- SELECT dbo.tblrequirements.guidrequirementid,
- tblcontracting.strdescription AS
- strcontracting,
- dbo.viewawardnumbers.strcontractnumber AS
- strawardnumber,
- Ltrim(Rtrim(dbo.viewawardnumbers.strtonumber)) AS strtonumber,
- dbo.tblrequirements.strdescription,
- dbo.tblezquerycontractvalue.curtotalvalue,
- dbo.tblcodescontractvehicles.strdescription AS
- strcontractvehicle,
- tblcustomer.stracronym AS strcustomer,
- dbo.tblcodesrequirementstatuses.strdescription AS strstatus,
- Substring(dbo.tblrequirements.strnotes, 0, 512) AS strnotes,
- Coalesce (dbo.tblrequirements.guidfromid,
- '00000000-0000-0000-0000-000000000000'
- ) AS guidfromid,
- Coalesce (dbo.viewteammembers.guidpersonid,
- '00000000-0000-0000-0000-000000000000') AS guidpersonid
- ,
- dbo.viewcurrentoptions.dtmstart,
- dbo.viewcurrentoptions.dtmend,
- Dateadd(d, -60, dbo.viewcurrentoptions.dtmend) AS
- dtm1stnoticedue,
- Dateadd(d, -30, dbo.viewcurrentoptions.dtmend) AS
- dtm2ndnoticedue,
- dbo.tblcontractdates.dtmcontractstart,
- dbo.tblcontractdates.dtmcontractend,
- Isnull(dbo.viewteammembers.strshortname, ' Not Assigned') AS strshortname
- ,
- dbo.tblezqueryfunding.curtotalfunded,
- CASE
- WHEN ( dbo.tblcodesrequirementstatuses.strdescription =
- 'Pre-Solicitation'
- OR dbo.tblcodesrequirementstatuses.strdescription =
- 'Solicitation'
- OR dbo.tblcodesrequirementstatuses.strdescription =
- 'Source Selection'
- ) THEN 'P'
- WHEN ( Coalesce (dbo.tblcodesprocurementtypes.strcode, '') <> 'IT'
- AND Coalesce (dbo.tblcodesprocurementtypes.strcode, '') <> 'OPS'
- ) THEN
- 'S'
- ELSE 'C'
- END AS strproctype,
- dbo.tblcodesprocurementtypes.strcode,
- dbo.tblcodesprocurementtypes.strdescription AS strprocdesc,
- deliveries.dtmdeliverydate,
- deliveries.bitdelivered,
- CASE
- WHEN ( dbo.tblcodesrequirementstatuses.strdescription =
- 'Pre-Solicitation'
- OR dbo.tblcodesrequirementstatuses.strdescription =
- 'Solicitation'
- OR dbo.tblcodesrequirementstatuses.strdescription =
- 'Source Selection'
- ) THEN 'Initial Start Date'
- WHEN ( Coalesce (dbo.tblcodesprocurementtypes.strcode, '') <> 'IT'
- AND Coalesce (dbo.tblcodesprocurementtypes.strcode, '') <> 'OPS'
- ) THEN
- 'POP'
- ELSE 'Delivery Date'
- END AS
- colpopdelivdt,
- CASE
- WHEN ( dbo.tblcodesrequirementstatuses.strdescription =
- 'Pre-Solicitation'
- OR dbo.tblcodesrequirementstatuses.strdescription =
- 'Solicitation'
- OR dbo.tblcodesrequirementstatuses.strdescription =
- 'Source Selection'
- ) THEN 'Req Award Date'
- WHEN ( Coalesce (dbo.tblcodesprocurementtypes.strcode, '') <> 'IT'
- AND Coalesce (dbo.tblcodesprocurementtypes.strcode, '') <> 'OPS'
- ) THEN
- 'Option Notice'
- ELSE 'Delivered'
- END AS
- coloptnotdeliv,
- tblpresolicitations.dtmcontacted,
- tblpresolicitations.dtmrequiredby,
- tblpresolicitations.dtmawardnotice,
- strjobid,
- bitprimary
- FROM dbo.tblrequirements
- INNER JOIN dbo.tblcodesrequirementstatuses
- ON dbo.tblcodesrequirementstatuses.strcode =
- dbo.tblrequirements.strstatusid
- LEFT OUTER JOIN dbo.tblezquerycontractvalue
- ON dbo.tblezquerycontractvalue.guidrequirementid =
- dbo.tblrequirements.guidrequirementid
- LEFT OUTER JOIN dbo.viewawardnumbers
- ON dbo.viewawardnumbers.guidrequirementid =
- dbo.tblrequirements.guidrequirementid
- LEFT OUTER JOIN dbo.tblezqueryfunding
- ON dbo.tblezqueryfunding.strawardnumber =
- dbo.viewawardnumbers.strawardnumber
- LEFT OUTER JOIN dbo.viewcurrentoptions
- ON dbo.tblrequirements.guidrequirementid =
- dbo.viewcurrentoptions.guidrequirementid
- LEFT OUTER JOIN dbo.viewteammembers
- ON dbo.viewteammembers.guidrequirementid =
- dbo.tblrequirements.guidrequirementid
- LEFT OUTER JOIN dbo.tblcontracts
- ON dbo.tblcontracts.guidrequirementid =
- dbo.tblrequirements.guidrequirementid
- LEFT OUTER JOIN dbo.tblcontractdates
- ON dbo.tblcontractdates.guidrequirementid =
- dbo.tblrequirements.guidrequirementid
- LEFT OUTER JOIN dbo.tblcodescontractvehicles
- ON dbo.tblcodescontractvehicles.strcode = dbo.tblcontracts.strvehicleid
- LEFT OUTER JOIN dbo.tblorganizations AS tblcontracting
- ON dbo.tblrequirements.guidfromid = tblcontracting.guidorgid
- LEFT OUTER JOIN dbo.tblorganizations AS tblcustomer
- ON dbo.tblrequirements.guidtoid = tblcustomer.guidorgid
- LEFT OUTER JOIN dbo.tblpresolicitations
- ON dbo.tblpresolicitations.guidrequirementid =
- dbo.tblrequirements.guidrequirementid
- LEFT OUTER JOIN dbo.tblcodesprocurementtypes
- ON dbo.tblcodesprocurementtypes.strcode =
- dbo.tblpresolicitations.strprocurementtypeid
- LEFT OUTER JOIN (SELECT guidrequirementid,
- REPLACE(REPLACE(REPLACE (
- (select
- ISNULL(CONVERT(CHAR(10), deliv.dtmdeliverydate, 101), '(no date)') +
- ' ' +
- CASE
- WHEN bitdelivered = 1 THEN 'þ'
- ELSE '¨'
- END + '
- '
- /*(SELECT CASE
- WHEN bitdelivered = 1
- THEN
- ''
- +
- CONVERT(CHAR(10),
- deliv.dtmdeliverydate,
- 101) +
- ' '
- + 'þ' + '
- '
- WHEN bitdelivered = 0
- AND deliv.dtmdeliverydate < Getdate() THEN
- '' +
- CONVERT(CHAR(10), deliv.dtmdeliverydate, 101) +
- ' '
- + '¨' + '
- '
- ELSE
- '' + CONVERT(CHAR(10), deliv.dtmdeliverydate, 101) +
- ' '
- + '¨' + '
- '
- END*/
- FROM tblclins clins
- INNER JOIN tblcommodities commod
- ON commod.guidclinid = clins.guidclinid
- INNER JOIN tbldeliveries deliv
- ON deliv.guidcommodityid = commod.guidcommodityid
- WHERE clins.guidrequirementid = req.guidrequirementid
- AND deliv.bitdelivered = 0
- ORDER BY guidrequirementid,
- deliv.dtmdeliverydate
- FOR XML PATH('')), '<', '<'), '>', '>'), '&', '&') AS dtmdeliverydate
- ,
- Stuff ((SELECT '|' + CAST(bitdelivered AS CHAR(1))
- FROM tblclins clins
- INNER JOIN tblcommodities commod
- ON commod.guidclinid = clins.guidclinid
- INNER JOIN tbldeliveries deliv
- ON deliv.guidcommodityid = commod.guidcommodityid
- WHERE clins.guidrequirementid = req.guidrequirementid
- ORDER BY guidrequirementid
- FOR XML PATH('')), 1, 1, '') AS bitdelivered
- FROM tblrequirements req
- GROUP BY guidrequirementid) deliveries
- ON deliveries.guidrequirementid = dbo.tblrequirements.guidrequirementid
- WHEN bitdelivered = 1
- ISNULL(CONVERT(CHAR(10), deliv.dtmdeliverydate, 101), '(no date)') +
- ' ' +
- CASE
- WHEN bitdelivered = 1 THEN 'þ'
- ELSE '¨'
- END + '
- '