cast(case when ProdIn>0 then (ROUND(cast(isnull(ProdOut,0) as float)/cast(isnull(ProdIn,0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率
FROM Hourprod WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY TestTime,ProdOut,ProdIn,Ppm,JiaDL
UNION ALL
SELECT '合计' as '时间', ProdIn '总数', ProdOut 'OK总数',Ppm 'PPM均值' ,JiaDL '稼动率均值',优率 as '优率' FROM (SELECT FDate,sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(PPM) Ppm,
cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(20))+'%' JiaDL,
cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率 FROM Hourprod
WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY FDate) as t ";*/
stringstrSql=$@"SELECT
CONVERT(varchar(10), TestTime, 120) AS 时间,
SUM(ProdIn) AS 总数,
SUM(ProdOut) AS OK总数,
AVG(Ppm) AS PPM均值,
CAST(ROUND(AVG(JiaDL) * 100, 1) AS nvarchar(20)) + '%' AS 稼动率均值,
CAST(CASE WHEN SUM(ProdOut) > 0 THEN ROUND(CAST(SUM(CcdOK) AS float) / CAST(SUM(ProdOut) AS float) * 100, 2) ELSE 0 END AS nvarchar(10)) + '%' AS 优率
FROM Hourprod
WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}'
GROUP BY CONVERT(varchar(10), TestTime, 120)
UNION ALL
SELECT
'合计' AS 时间,
SUM(ProdIn) AS 总数,
SUM(ProdOut) AS OK总数,
AVG(Ppm) AS PPM均值,
CAST(ROUND(AVG(JiaDL) * 100, 1) AS nvarchar(20)) + '%' AS 稼动率均值,
CAST(CASE WHEN SUM(ProdIn) > 0 THEN ROUND(CAST(SUM(ProdOut) AS float) / CAST(SUM(ProdIn) AS float) * 100, 2) ELSE 0 END AS nvarchar(10)) + '%' AS 优率
FROM Hourprod
WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}'";
cast(case when sum(ProdIn)>0 then (ROUND(cast(isnull(SUM(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率
FROM Hourprod WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY convert(char(10), TestTime, 120),JiaDL
UNION ALL
SELECT '合计' as '月份', ProdIn '总数', ProdOut 'OK总数',Ppm 'PPM均值' ,JiaDL '稼动率均值',优率 as '优率' FROM (SELECT sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(Ppm) Ppm,
cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(20))+'%' JiaDL,
cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10))+'%' 优率 FROM Hourprod
WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}') as t ";*/
stringstrSql=$@"
SELECT
'第'+DATENAME(WEEK,TestTime)+'周' AS 周,
SUM(ProdIn) AS 总数,
SUM(ProdOut) AS OK总数,
AVG(Ppm) AS PPM均值,
CAST(ROUND(AVG(JiaDL)*100,1) AS nvarchar(20)) + '%' AS 稼动率均值,
CAST(CASE WHEN SUM(ProdOut) > 0 THEN
ROUND(CAST(ISNULL(SUM(CcdOK),0) AS float)/CAST(ISNULL(SUM(ProdOut),0) AS float)*100,2)
ELSE 0 END AS nvarchar(10)) + '%' AS 优率
FROM Hourprod
WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}'
GROUP BY DATENAME(WEEK,TestTime)
UNION ALL
SELECT
'合计' AS 周,
SUM(ProdIn) AS 总数,
SUM(ProdOut) AS OK总数,
AVG(Ppm) AS PPM均值,
CAST(ROUND(AVG(JiaDL)*100,1) AS nvarchar(20)) + '%' AS 稼动率均值,
CAST(CASE WHEN SUM(ProdIn) > 0 THEN
ROUND(CAST(ISNULL(SUM(ProdOut),0) AS float)/CAST(ISNULL(SUM(ProdIn),0) AS float)*100,2)
ELSE 0 END AS nvarchar(10)) + '%' AS 优率
FROM Hourprod
WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}'
CAST(ROUND(AVG(JiaDL), 1) AS NVARCHAR(20)) + '%' AS 稼动率均值,
cast(case when sum(ProdIn)>0 then (ROUND(cast(isnull(SUM(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率
FROM Hourprod WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}' GROUP BY convert(char(7), TestTime, 120)
UNION ALL
SELECT
'合计' AS 月份,
SUM(ProdIn) AS 总数,
SUM(ProdOut) AS OK总数,
AVG(Ppm) AS PPM均值,
CAST(ROUND(AVG(JiaDL), 1) AS NVARCHAR(20)) + '%' AS 稼动率均值,
CAST(CASE WHEN SUM(ProdOut) > 0 THEN
ROUND(CAST(SUM(CcdOK) AS FLOAT) / CAST(SUM(ProdOut) AS FLOAT) * 100, 2)
ELSE 0 END AS NVARCHAR(10)) + '%' AS 优率
FROM Hourprod
WHERE TestTime BETWEEN '{startDateTime}' AND '{endDateTime}'
cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(20))+'%' 稼动率均值,
cast(case when SUM(ProdIn)>0 then (ROUND(cast(isnull(SUM(ProdOut),0) as float)/cast(isnull(SUM(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率
FROM Hourprod WHERE TestTime BETWEEN '{sDateTime1}' AND '{sDateTime2}' GROUP BY CONVERT(varchar(13),TestTime,120)
UNION ALL
SELECT '合计' as '时间', SUM(ProdIn) '总数', SUM(ProdOut) 'OK总数', AVG(Ppm) 'PPM均值', cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(20))+'%' 稼动率均值,优率 as '优率' FROM (SELECT FDate,sum(ProdIn) ProdIn, SUM(ProdOut) ProdOut,AVG(Ppm) Ppm,
cast(ROUND(AVG(JiaDL)*100,1) as nvarchar(20))+'%' JiaDL,
cast(case when (sum(ProdIn))>0 then (ROUND(cast(isnull(sum(ProdOut),0) as float)/cast(isnull(sum(ProdIn),0) as float)*100,2)) else 0 end as nvarchar(10) )+'%' 优率 FROM Hourprod
WHERE TestTime BETWEEN '{sDateTime1}' AND '{sDateTime2}' GROUP BY FDate) as t ";*/
stringstrsql=$@"SELECT
CONVERT(varchar(13), TestTime, 120) AS 时间,
SUM(ProdIn) AS 总数,
SUM(ProdOut) AS OK总数,
AVG(Ppm) AS PPM均值,
CAST(ROUND(AVG(JiaDL) * 100, 1) AS nvarchar(20)) + '%' AS 稼动率均值,
CAST(CASE WHEN SUM(ProdIn) > 0 THEN ROUND(CAST(ISNULL(SUM(ProdOut), 0) AS float) / CAST(ISNULL(SUM(ProdIn), 0) AS float) * 100, 2) ELSE 0 END AS nvarchar(10)) + '%' AS 优率
FROM Hourprod
WHERE TestTime BETWEEN '{sDateTime1}' AND '{sDateTime2}' GROUP BY CONVERT(varchar(13), TestTime, 120)
UNION ALL
SELECT
'合计' AS 时间,
SUM(ProdIn) AS 总数,
SUM(ProdOut) AS OK总数,
AVG(Ppm) AS PPM均值,
CAST(ROUND(AVG(JiaDL) * 100, 1) AS nvarchar(20)) + '%' AS 稼动率均值,
CAST(CASE WHEN SUM(ProdIn) > 0 THEN ROUND(CAST(SUM(ProdOut) AS float) / CAST(SUM(ProdIn) AS float) * 100, 2) ELSE 0 END AS nvarchar(10)) + '%' AS 优率
FROM Hourprod
WHERE TestTime BETWEEN '{sDateTime1}' AND '{sDateTime2}' ";
returnstrsql;
}
/// <summary>
/// 获取最新的数据
/// </summary>
/// <returns></returns>
publicstringGetStatic(stringstrDateTime)
{
stringstrsql=$@" SELECT [FDate]
,[FHour]
,[ProdIn]
,[ProdOut]
,[TestTime]
FROM [dbo].[Hourprod] where FDate='{strDateTime}' order by TestTime desc";