年の各月を列挙するデータを引っ張っていますが、月の列には毎年の最初の日が示されます。満月の名前? ここに私が持っているもののいくつかがあります。私は似たような質問を読んで、どこに書かれているかを追加しようとしましたが、うまく動作しませんでした。事前に年に各月を引くときに、数字ではなく日付の名前を表示する月を取得する
SELECT a.MonthDate
,Sum(a.ScrapPcs)/(Sum(a.GrossPcs)*1.00) As ScrapPct
,0.05 As ScrapTarget
,sum (a.GrossPcs) As 'Total Parts Cast'
,sum (a.ScrapPcs) as 'Total Parts Scrap'
,CASE
WHEN Sum(a.ScrapPcs)/(Sum(a.GrossPcs)*1.00) <= 0.05 THEN 1
WHEN Sum(a.ScrapPcs)/(Sum(a.GrossPcs)*1.00) >= 0.9*.05 THEN -1
ELSE 0
END
AS Status
FROM
(
SELECT DATEADD(month, DATEDIFF(month, 0, b.CreationProdDate), 0) As MonthDate
,Count(b.BOOKING_ID) As ScrapPcs
, 0 As GrossPcs
FROM dbo.CPC_BOOKING b
WHERE b.CreationProdDate Between DATEADD(yy, DATEDIFF(yy, 0, GetDate()), 0) AND DateAdd("d", -1, GetDate())
and CPC_BookingTyp_ID in (2,8)
and ManufacturingPlant in (90002604,90017699, 90017705)
GROUP BY DATEADD(month, DATEDIFF(month, 0, b.CreationProdDate), 0)
UNION ALL
SELECT DATEADD(month, DATEDIFF(month, 0, n.ProductionDate), 0) As MonthDate
,0 As ScrapPcs
,Sum(n.Quantity) As GrossPcs
FROM [NORIS].[dbo].[MDL_Data_Ultimate] n
WHERE n.ProductionDate Between DATEADD(yy, DATEDIFF(yy, 0, GetDate()), 0) AND DateAdd("d", -1, GetDate())
and n.ManufacturingPlantGroup = 1
GROUP BY DATEADD(month, DATEDIFF(month, 0, n.ProductionDate), 0)
) a
group by a.MonthDate
おかげで、何がMySQLの場合
「MySQL」または「SQL Server」? – Squirrel
これはmysqlとsqlserverの両方にすることはできません。また、私たちが答えることができない回答もそれぞれ異なるためです。 – Hogan
Date_Format()を使用します。 詳細についてはhttps://www.w3schools.com/sql/func_mysql_date_format.asp –