-1

探している結果を照会しました。今は単に「OnTime」の Y/N を「OnTime」のパーセンテージで比較したいのですが、エイリアスの比較や PRINT での列名の使用に問題があります。関数。助言がありますか?

SELECT
shmast.fcnumber AS Customer,
shmast.fcbcompany AS Company,
somast.fsono AS SalesOrder,
somast.fduedate AS DueDate, 
shmast.fshipno AS Shipper, 
shmast.fshipdate AS ShipDate,
--DATEDIFF(DAY,somast.fduedate,shmast.fshipdate) AS 'Days',
CASE
    WHEN shmast.fshipdate <= somast.fduedate THEN 'Y'
    WHEN shmast.fshipdate > somast.fduedate THEN 'N'
END AS OnTime
FROM somast
JOIN shmast ON somast.fsono = shmast.fcsono
WHERE shmast.fcnumber = '000111'
PRINT (OnTime = 'Y') / COUNT (*)
/*GROUP BY
shmast.fcnumber,
shmast.fcbcompany,
somast.fsono,
somast.fduedate, 
shmast.fshipno, 
shmast.fshipdate*/
4

1 に答える 1

1

あなたの説明の後に別のショットを与える

SELECT
sum(CASE WHEN shmast.fshipdate<=somast.fduedate THEN 100.0 END)/count(*) AS OnTime
FROM somast
JOIN shmast ON somast.fsono = shmast.fcsono
WHERE shmast.fcnumber = '000111'
于 2013-07-21T00:34:56.383 に答える