如何在SQL Server中一起使用count,case和Distinct

古塔姆

我想创建一条语句,但我无法成功完成此操作。您能看看吗,让我知道我需要做些什么才能完成此操作。我的问题由于如何在我的查询中添加这两部分。

我想查看每个DRV1NUM的订单的最近30天。如果该司机工作了0天,请说“不活跃”。如果驾驶员工作超过15天,则“全职”且少于15天为“部分时间”。

在这一部分中,我想查看订单的最后30天,并将DRIVERNUM的left(4)与整个DRIVERNUM进行比较。在某些情况下,我们的驱动程序的第4个字母后面有第5个字母。我想查看订单的最后30天,如果在查看所有字符时left(4)DRV1NUM有多个DRV1NUM,则说'掌握'

     SELECT DISTINCT DRVLICNUM,DOB,COUNTRY,CREDITLIMIT,DRIVERNUM=LEFT(DRIVERNUM,4),
        SSN,D.VEHICLE,PHN1,DRVLICST,HOST,VEHICLE_MC,
        VEHICLE_DOT,BACK_APPROVED=CASE WHEN PROBDATE IS NOT NULL THEN 'YES' ELSE 'NO' END

     -- CASE WHEN COUNT(DISTINCT O.DROPDATE)=0 IN LAST 30 DAYS THEN 'NOT ACTIVE' WHEN COUNT(DISTINCT O.DROPDATE)>15 IN LAST 30 DAYS THEN 'FULL TIME'  WHEN COUNT(DISTINCT O.DROPDATE)>=1 AND <=15 THEN 'PART TIME' IN LAST 30 DAYS ELSE NULL AS DAYSWORKED,

-- --CASE WHEN COUNT(DISTINCT O.DRV1NUM OF LEFT(DRIVERNUM,4 )>0 IN LAST 30 DAYS OF ORDERS>1 THEN 'MASTER IC' ELSE NULL AS MASTER

/* ABOVE TWO STATEMENT I WANT TO ADD */ 
        FROM DRIVER D

        FULL OUTER JOIN orde_ O ON O.DRV1ID=D.DRIVERID
        AND ISNUMERIC(DRIVERNUM)=1 and DRIVERNUM NOT IN ('1010')

我想要的预期输出

DRVLICNUM    Employee    DOB       COUNTRY    ACTIVESTATUS  
---------------------------------------------------------
055243324    CONTRACTOR 1985-04-13 ATLANTA    FULL TIME

ActiveStatus处于活动状态,因为驱动程序在过去15天内工作了15天以上,如果少于15天则为“兼职”

斯瓦普尼尔

我无权访问您共享的Google驱动器链接。

但是,您将必须使用CTE(公用表表达式)来获取天数,然后使用它来计算ActiveStatus列的值。

尝试使用以下代码:

;
WITH CTE1
AS(
    SELECT D.DRIVERID,
        COUNT(DISTINCT O.DROPDATE) AS DayCount
    FROM DRIVER AS D
    LEFT JOIN ORDER AS O ON D.DRIVERID=O.DRV1ID AND O.DROPDATE BETWEEN CONVERT(DATE,DATEADD(DAY,-30,GETDATE())) AND GETDATE()
    WHERE ISNUMERIC(D.DRIVERNUM)=1 AND D.DRIVERNUM NOT IN ('1010')
    GROUP BY D.DRIVERID
)
SELECT  DRVLICNUM,DOB,COUNTRY,CREDITLIMI,...
        CASE 
            WHEN DayCount=0 THEN 'NOT ACTIVE'
            WHEN DayCount<=15 THEN 'PART TIME'
            WHEN DayCount>=30 THEN 'FULL TIME'
        END AS ACTIVESTATUS         
FROM CTE1 AS C
JOIN DRIVER AS D ON C.DRIVERID=D.DRIVERID

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL Server中一起使用count,case和Distinct

来自分类Dev

如何在SQL Server中一起使用PIVOT和JOIN?

来自分类Dev

如何在SQL Server查询中一起使用LIKE和NOT LIKE

来自分类Dev

如何在SQL Server中一起使用相等和不相等

来自分类Dev

如何在Access VBA编码中一起使用Select Case和AND功能?

来自分类Dev

在SQL中一起使用AND和OR

来自分类Dev

GROUP BY和COUNT或SUM如何在SQL查询中一起工作

来自分类Dev

如何在SQL中一起使用IN子句和AND子句

来自分类Dev

如何在while和foreach循环中一起使用PHP和MySQL?

来自分类Dev

如何在SQL Server查询中与with和内部联接一起使用?

来自分类Dev

在MySQL中一起使用Distinct,Count和Group

来自分类Dev

如何在Python中一起使用applymap,lambda和dataframe来过滤/修改dataframe?

来自分类Dev

您如何在Groovy中一起使用GroupBy和Sum?

来自分类Dev

如何在gnuplot中一起使用“ var”和“ palette”?

来自分类Dev

如何在Verilog中一起使用inout和reg

来自分类Dev

如何在bootstrap 3 popover中一起使用“ show”和“ placement”等属性?

来自分类Dev

如何在angularjs中一起使用angular-gridster和highcharts-ng指令

来自分类Dev

如何在Laravel中一起使用Memcached和APC?

来自分类Dev

如何在Python中一起使用filter,group by和agg函数

来自分类Dev

如何在Google表格中一起使用to_date和IFERROR?

来自分类Dev

如何在SQLAlchemy中一起使用JOIN和SELECT AS?

来自分类Dev

如何在Redis中一起使用复制和分片?

来自分类Dev

如何在Bash中一起使用watch和jobs命令?

来自分类Dev

如何在Scrapy中一起使用http和https代理?

来自分类Dev

如何在Verilog中一起使用inout和reg

来自分类Dev

我如何在React中一起使用'update'和setState(prevState)?

来自分类Dev

如何在for循环中一起使用innerHTML和ejs?

来自分类Dev

如何在 Html.Beginform 中一起使用 AjaxOptions 和 htmlattributes

来自分类Dev

如何在 Swift iOS 中一起使用 UITableView 和 NSLink?

Related 相关文章

  1. 1

    如何在SQL Server中一起使用count,case和Distinct

  2. 2

    如何在SQL Server中一起使用PIVOT和JOIN?

  3. 3

    如何在SQL Server查询中一起使用LIKE和NOT LIKE

  4. 4

    如何在SQL Server中一起使用相等和不相等

  5. 5

    如何在Access VBA编码中一起使用Select Case和AND功能?

  6. 6

    在SQL中一起使用AND和OR

  7. 7

    GROUP BY和COUNT或SUM如何在SQL查询中一起工作

  8. 8

    如何在SQL中一起使用IN子句和AND子句

  9. 9

    如何在while和foreach循环中一起使用PHP和MySQL?

  10. 10

    如何在SQL Server查询中与with和内部联接一起使用?

  11. 11

    在MySQL中一起使用Distinct,Count和Group

  12. 12

    如何在Python中一起使用applymap,lambda和dataframe来过滤/修改dataframe?

  13. 13

    您如何在Groovy中一起使用GroupBy和Sum?

  14. 14

    如何在gnuplot中一起使用“ var”和“ palette”?

  15. 15

    如何在Verilog中一起使用inout和reg

  16. 16

    如何在bootstrap 3 popover中一起使用“ show”和“ placement”等属性?

  17. 17

    如何在angularjs中一起使用angular-gridster和highcharts-ng指令

  18. 18

    如何在Laravel中一起使用Memcached和APC?

  19. 19

    如何在Python中一起使用filter,group by和agg函数

  20. 20

    如何在Google表格中一起使用to_date和IFERROR?

  21. 21

    如何在SQLAlchemy中一起使用JOIN和SELECT AS?

  22. 22

    如何在Redis中一起使用复制和分片?

  23. 23

    如何在Bash中一起使用watch和jobs命令?

  24. 24

    如何在Scrapy中一起使用http和https代理?

  25. 25

    如何在Verilog中一起使用inout和reg

  26. 26

    我如何在React中一起使用'update'和setState(prevState)?

  27. 27

    如何在for循环中一起使用innerHTML和ejs?

  28. 28

    如何在 Html.Beginform 中一起使用 AjaxOptions 和 htmlattributes

  29. 29

    如何在 Swift iOS 中一起使用 UITableView 和 NSLink?

热门标签

归档