环比 月、年

string fieldName = ReportDimension.GetFieldDesc4Equipment(fieldID);
string monthOrYear = (endYear==0)?“MONTH”:“YEAR”;
string monthOrYearLeftJoinStr = (endYear == 0) ? " AND DATEPART(YEAR,r1.RequestDate) = DATEPART(YEAR ,r2.RequestDate) " : “”;
string monthOrYearWhereStr = (endYear == 0) ? " AND DATEPART(YEAR,r1.RequestDate)= @StartYear " : " AND DATEPART(YEAR ,r1.RequestDate)>=@StartYear AND DATEPART(YEAR,r1.RequestDate)<=@EndYear ";

        sqlStr = string.Format("SELECT {0}, DATEPART({1} ,r1.RequestDate) AS monthOrYear,COUNT(DISTINCT r1.ID) AS now,COUNT(DISTINCT r2.ID) AS pre "+
                              " FROM tblRequest r1 "+

                              " LEFT JOIN jctRequestEqpt re ON re.RequestID =r1.ID  "+
                              " LEFT JOIN tblEquipment e ON e.ID =re.EquipmentID "+
                              " LEFT JOIN ( "+

                              " SELECT sr.ID ID,sr.RequestDate,sr.RequestType,{0} " +
                              " FROM tblEquipment e  "+
                              " LEFT JOIN jctRequestEqpt sre ON sre.EquipmentID = e.ID "+
                              " LEFT JOIN tblRequest sr ON sr.ID =sre.RequestID "+

                              " ) r2 ON r1.RequestType =r2.RequestType  "+
                              " AND DATEPART({1},r1.RequestDate) = DATEPART({1} ,r2.RequestDate)+1  {2}" +
                              " AND r2{4} = {0} " +

                              " WHERE r1.RequestType=@RequestType {3} AND re.RequestID IS NOT NULL AND re.EquipmentID IS NOT NULL "+
                              " GROUP BY DATEPART({1} ,r1.RequestDate) ,{0}",
                              fieldName,
                              monthOrYear,
                              monthOrYearLeftJoinStr,
                              monthOrYearWhereStr,
                              fieldName.Substring(fieldName.IndexOf(".")));
        using (SqlCommand command = ConnectionUtil.GetCommand(sqlStr))
        {
            command.Parameters.Add("@RequestType", SqlDbType.Int).Value = (type == RequestInfo.RequestTypes.Recall) ? RequestInfo.RequestTypes.Inspection : type;
            command.Parameters.Add("@StartYear", SqlDbType.Int).Value = startYear;
            if (endYear != 0)
                command.Parameters.Add("@EndrtYear", SqlDbType.Int).Value = endYear;

            return GetDataTable(command);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值