以下のCASE文の正しい構文を教えてもらえますか?これは、返品価格が「返品」を含む場合、返品価格が求人テーブルの計算されたコストの半分であるところで作成しているビューの一部です。その誤った構文を言って、キーワードELSE。前もって感謝します。上記SUM SQLを使用したCASE文
`
/****** Object: View [dbo].[MMXREPORT] Script Date: 11/08/2016 14:06:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Alter view [dbo].[MMXREPORT] AS
DECLARE @output int
SELECT isnull(Cus.CUSTOMERNUMBER,'') AS "ACCOUNT",
isnull(dbo.Jobs.DELDATEANDTIME,'') as "DELIVERY DATE" ,
isnull(dbo.Jobs.JOBREFERENCE,'') AS "MMX REFERENCE",
isnull(dbo.Jobs.JOBNUMBER,'') AS "INDIGO REF",
isnull(dbo.Jobs.COLPOSTCODE,'') AS "COLLECTION POSTCODE",
isnull(dbo.Jobs.DELTOWN,'') AS "DELIVERY TOWN",
isnull(dbo.Jobs.DELLPOSTCODE,'') AS "DELIVERY POST CODE",
CASE when (select count (*) from jobcharge jobc inner join charge
on charge.chargeid = jobc.chargeid
where jobc.jobid = jobs.jobid and charge.description like '%return%') > 0 THEN 'YES'
ELSE 'NO' END as "RETURN AUTHORISED",
isnull(dbo.GetClarionTime (DELREADYAT),'') AS "PLANNED DELIVERY TIME",
'' AS "DRIVER ARRIVAL TIME",
'' AS "ENGINEER ARRIVAL TIME",
isnull(convert(char(5), dbo.Jobs.PODDATEANDTIME, 108),'') AS"POD TIME",
isnull(dbo.Jobs.PODNAME,'') AS"POD NAME",
isnull(dbo.Vehicle.VEHICLE,'') AS "VEHICLE SIZE",
isnull(dbo.Jobs.ACTUALMILEAGE,'0') AS "MILEAGE",
isnull(dbo.Jobs.CALCULATEDCOST,'') AS "MILEAGE PRICE",
SELECT @output = count (*) from jobcharge jobc inner join charge
ON charge.chargeid = jobc.chargeid
WHERE jobc.jobid = jobs.jobid AND charge.description LIKE '%return%'
CASE WHEN @output > 0 THEN SUM(JOBS.CALCULATEDCOST/2)
ELSE '0.00' END
AS "RETURN PRICE",
isnull((select sum (dbo.JobCharge.FLATRATE) from jobcharge inner join charge on charge.chargeid = jobcharge.chargeid
WHERE dbo.Charge.DESCRIPTION like '%congestion%' and jobcharge.jobid = jobs.jobid),0) AS "CONGESTION CHARGE",
'' AS "CONGESTION CHARGE COMMENTS",
isnull((select sum (dbo.JobCharge.FLATRATE) from jobcharge inner join charge on charge.chargeid = jobcharge.chargeid
WHERE dbo.Charge.DESCRIPTION like '%waiting time%' and jobcharge.jobid = jobs.jobid),0) AS "WAITING TIME CHARGE",
'' AS "WAITING TIME COMMENTS",
isnull((select sum (dbo.JobCharge.FLATRATE) from jobcharge inner join charge on charge.chargeid = jobcharge.chargeid
WHERE dbo.Charge.DESCRIPTION like '%hrs%' and jobcharge.jobid = jobs.jobid),0) AS "ANY OTHER CHARGES",
'' AS "ANY OTHER COMMENTS",
'' AS "TOTAL COST",JOBS.CUSTOMERID
FROM dbo.Jobs left outer JOIN
dbo.Vehicle ON dbo.Jobs.VEHICLEID = dbo.Vehicle.VEHICLEID left outer JOIN
-- dbo.JobCharge ON dbo.Jobs.JobID = dbo.JobCharge.JOBID left outer JOIN
dbo.Customer CUS ON dbo.Jobs.CUSTOMERID = CUS.CUSTOMERID
` いっぱいクエリです。
によるNO 'FROM' There'n 'THEN SELECT'部分にあります。しかし、あなたが実際に何を望んでいるのかわからないので、これを修正する方法を伝えるのは難しいです。 – dnoeth
クエリ全体を表示 – Mike
これは完全なクエリです..... –