Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL分组问题_Sql_Grouping - Fatal编程技术网

SQL分组问题

SQL分组问题,sql,grouping,Sql,Grouping,我正在尝试编写一个查询,该查询将返回任何具有多个工单的客户,这些工单在一周中的不同日期。每个客户的每个工作单都应该在一周的同一天下,因此我想知道哪里不是这样,以便我可以修复它 该表的名称为Core.WorkOrder,它包含一个名为CustomerId的列,该列指定每个工单所属的客户。有一个名为TimeWindowsStart的列,可以用来查看每个工单的日期。我使用DATENAMEweekday,TimeWindowsStart来执行此操作 你知道怎么写这个查询吗?我被困在这里了 谢谢 我试一试

我正在尝试编写一个查询,该查询将返回任何具有多个工单的客户,这些工单在一周中的不同日期。每个客户的每个工作单都应该在一周的同一天下,因此我想知道哪里不是这样,以便我可以修复它

该表的名称为Core.WorkOrder,它包含一个名为CustomerId的列,该列指定每个工单所属的客户。有一个名为TimeWindowsStart的列,可以用来查看每个工单的日期。我使用DATENAMEweekday,TimeWindowsStart来执行此操作

你知道怎么写这个查询吗?我被困在这里了


谢谢

我试一试,我只能在删除DISTINCT后运行它,一旦我删除了DISTINCT,它就会返回所有具有多个工单的客户,但不排除所有工单在一周的同一天落下的客户。@Joel:当然,DISTINCT在分析函数中不起作用。请现在试一试。
SELECT  *
FROM    (
        SELECT  *,
                COUNT(dp) OVER (PARTITION BY CustomerID) AS cnt
        FROM    (
                SELECT  DISTINCT CustomerID, DATEPART(dw, TimeWindowStart) AS dp
                FROM    workOrder
                ) q
        ) q
WHERE   cnt >= 2
Select ...
From WorkOrder As W
Where Exists    (
                Select 1
                From WorkOrder As W1
                    And W1.CustomerId = W.CustomerId    
                    And DatePart( dw, W1.TimeWindowStart ) <> DatePart( dw, W.TimeWindowStart )
                )
SELECT CustomerId,
       MIN(DATENAME(weekday, TimeWindowStart)), 
       MAX(DATENAME(weekday, TimeWindowStart))
FROM Core.WorkOrder
GROUP BY CustomerId
HAVING MIN(DATENAME(weekday, TimeWindowStart)) != MAX(DATENAME(weekday, TimeWindowStart))