2016-03-31 71 views
-1

[比较两列ftp_start_time和ftp_stop_time并根据条件返回列数:3列为1.Tried(count(ftp_start_time))2.成功3.(ftp_start_time当ftp_stop_time不为空的计数)失败(ftp_stop_time的数量必须为null)..请帮助比较两列ftp_start_time和ftp_stop_time并根据条件返回列数

Screenshot

SELECT 
    a.Branch_code, 
    b.DevCount AS total, 
    COUNT(a.ftp_start_time) AS tried 
FROM 
    ftplogview AS a 
LEFT JOIN 
    palmtecsetup AS b ON a.Branch_code = b.Branch_code 
WHERE 
    ftp_start_date = '2016-03-31' 
GROUP BY 
    a.Branch_code, b.DevCount 
ORDER BY 
    Branch_code 

这是我迄今使用的查询...谁能帮帮我?

+0

你的图像没有链接到这个问题。 – JoeFletch

+0

@RizwanaNazeer我可以看到ftp_stop_date和ftp_stop_time为NULL。那些是你所指的专栏? –

+0

我错了问题..实际上ftp_start_time和ftp_stop_time比较 –

回答

0

希望这人会帮助你,使用子选择查询像下面 -

SELECT 
     q.Branch_code, 
     q.DevCount AS total, 
     COUNT(q.ftp_start_time) AS tried, 
     SUM(Success) AS SuccessCount, 
     SUM(Failed) AS FailedCount, 
     SUM(NOTTRIED) AS NOTTRIEDCount 
    FROM 
    (
     SELECT 
      a.Branch_code, 
      b.DevCount AS total, 
      a.ftp_start_time AS tried, 
      CASE WHEN a.ftp_start_time IS NOT NULL AND a.ftp_stop_time IS NOT NULL THEN 1 ELSE 0 END AS Success, 
      CASE WHEN a.ftp_start_time IS NOT NULL AND a.ftp_stop_time IS NULL THEN 1 ELSE 0 END AS Failed, 
      CASE WHEN a.ftp_start_time IS NULL AND a.ftp_stop_time IS NULL THEN 1 ELSE 0 END AS NOTTRIED 
     FROM 
      ftplogview AS a 
     LEFT JOIN 
      palmtecsetup AS b ON a.Branch_code = b.Branch_code 
     WHERE 
      ftp_start_date = '2016-03-31'  

    ) Q 
    GROUP BY 
     Q.Branch_code, Q.Total 
    ORDER BY 
     Q.Branch_code 
+0

Msg 4104,Level 16,State 1,Line 3 多部分标识符“a.Branch_code”不能界。 Msg 4104,Level 16,State 1,Line 4 无法绑定多部分标识符“b.DevCount”。 Msg 4104,Level 16,State 1,Line 5 无法绑定多部分标识符“a.ftp_start_time”。 尝试上面的代码后,我得到这个错误....! –

+0

编辑我的查询,请现在检查。 – Vinit

+0

非常有帮助...非常感谢!这帮助了我......感谢你耐心地帮助我...... –

0

我会使用公共表表达式

with cte(Branch_code, DevCount, total,ftp_start_time,ftp_stop_date,ftp_stop_time) 
as (
SELECT 
    a.Branch_code, 
    b.DevCount, 
    a.ftp_start_time, 
    a.ftp_stop_date, 
    a.ftp_stop_time 
FROM 
    ftplogview AS a 
LEFT JOIN 
    palmtecsetup AS b ON a.Branch_code = b.Branch_code 
GROUP BY 
    a.Branch_code, b.DevCount 
) 
SELECT Branch_code, 
    DevCount AS total, 
    COUNT(ftp_start_time) AS tried, 
    SUM(
    case 
     when ftp_start_time is not null and ftp_stop_time is not null then 1 
     else 0 end 
     ) as success, 
    SUM(
     case 
      when ftp_stop_time is null then 1 
      else 0 end 
     ) as failed 
FROM CTE 
WHERE ftp_start_time = '2016-03-31' 
+0

其实在前端用户必须选择数据取得的日期......这段代码不适用于那 –

+0

所以,请更好地解释你的问题,否则难以相应地帮助你。 – alessalessio

+0

我已经添加了一个图像可以ü请检查? –

相关问题