按 MSSQL 查询 SQL 以获取所有列和最小最大日期时间

Query SQL to get all column and min max datetime by MSSQL

我正在使用 Microsoft SQL 服务器。这是我的 table 添加示例数据格式文本 table

╒══════════╤═════════════╤══════════╤═══════╤═════════════╤═════════════════════╤══════════════════╤══════════════════════╤══════════╤═════════════╤═════╤════════════╤════════════╤════════════╤══════════╕
│ RecordID │ ID Employee │ Resource │ Shift │ ProjectID   │ Drawing No          │ Production order │ PN                   │ Quantity │ ProductName │ BNo │ Start Date │ Start Time │ End Date   │ End Time │
╞══════════╪═════════════╪══════════╪═══════╪═════════════╪═════════════════════╪══════════════════╪══════════════════════╪══════════╪═════════════╪═════╪════════════╪════════════╪════════════╪══════════╡
│ 60431    │ 2088        │ M-JO     │ HC    │ E195256-A01 │ No.31               │ MA-000000001     │ SHAFT-DBT-999M       │ 1        │ NULL        │ B01 │ 2020-10-05 │ 13:23:27   │ NULL       │ NULL     │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 8354     │ 2029        │ M-JO     │ HC    │ E183127-A01 │ VPR180714801/603-F2 │ MA-000001FAB     │ VY1200-DISE-700F     │ 7        │ NULL        │ B01 │ 2019-09-23 │ 09:41:48   │ 2019-09-23 │ 14:38:18 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 8408     │ 2058        │ M-MD2.5  │ 1     │ E183127-A01 │ VPR180714801/603-F2 │ MA-000001FAB     │ VY1200-DISE-700F     │ 7        │ NULL        │ B01 │ 2019-09-23 │ 15:32:53   │ 2019-09-23 │ 16:51:19 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 50130    │ 2175        │ M-ML1.5  │ HC    │ L190004-A01 │ VS1-0931991         │ MA-000001PHA     │ L190004-A01-051-023C │ 2        │ NULL        │ B01 │ 2020-05-19 │ 15:59:23   │ 2020-05-19 │ 18:06:14 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 50231    │ 2175        │ M-ML1.5  │ HC    │ L190004-A01 │ VS1-0931991         │ MA-000001PHA     │ L190004-A01-051-023C │ 2        │ NULL        │ B01 │ 2020-05-20 │ 08:04:39   │ 2020-05-20 │ 16:53:53 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 50874    │ 2134        │ M-ML2    │ HC    │ L190004-A01 │ VS1-1633944-00      │ MA-000002PHA     │ L190004-A01-005-023C │ 2        │ NULL        │ B01 │ 2020-05-22 │ 10:11:08   │ 2020-05-22 │ 16:39:43 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 51030    │ 2134        │ M-ML2    │ HC    │ L190004-A01 │ VS1-1633944-00      │ MA-000002PHA     │ L190004-A01-005-023C │ 2        │ NULL        │ B01 │ 2020-05-23 │ 08:06:43   │ 2020-05-23 │ 11:38:03 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 52063    │ 2134        │ M-ML2    │ HC    │ E203089-A01 │ VS1-1633944-00      │ MA-000003PHA     │ E203089-A01-005-023C │ 1        │ NULL        │ B01 │ 2020-05-28 │ 13:23:48   │ 2020-05-28 │ 18:29:19 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 52204    │ 2134        │ M-ML2    │ HC    │ E203089-A01 │ VS1-1633944-00      │ MA-000003PHA     │ E203089-A01-005-023C │ 1        │ NULL        │ B01 │ 2020-05-29 │ 08:05:22   │ 2020-05-29 │ 12:51:25 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 8051     │ 2163        │ M-MLV1.6 │ 3     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-09-21 │ 02:30:14   │ 2019-09-21 │ 06:00:00 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 8052     │ 2028        │ M-MLV1.6 │ 1     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-09-21 │ 08:10:59   │ 2019-09-21 │ 10:00:00 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 8100     │ 2029        │ M-JO     │ 2     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-09-21 │ 14:05:12   │ 2019-09-21 │ 15:36:38 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 8222     │ 2058        │ M-MD2.5  │ HC    │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-09-22 │ 11:24:54   │ 2019-09-22 │ 14:43:19 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 15490    │ 2228        │ M-MP3    │ 1     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-10-26 │ 06:51:06   │ 2019-10-26 │ 14:00:50 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 15585    │ 2226        │ M-MP3    │ 2     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-10-26 │ 14:03:21   │ 2019-10-26 │ 19:58:07 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 15979    │ 2034        │ M-MD3    │ 1     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-10-29 │ 09:08:52   │ 2019-10-29 │ 13:17:48 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 16056    │ 2212        │ M-MLV1.4 │ 1     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-10-29 │ 14:23:47   │ 2019-10-29 │ 17:51:46 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 16136    │ 2087        │ M-MLV1.4 │ 3     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-10-29 │ 19:08:29   │ 2019-10-30 │ 05:53:22 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 16188    │ 2212        │ M-MLV1.4 │ 1     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-10-30 │ 06:09:27   │ 2019-10-30 │ 08:22:06 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 16445    │ 2058        │ M-MD2.5  │ 3     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-10-30 │ 20:59:08   │ 2019-10-30 │ 22:29:19 │
├──────────┼─────────────┼──────────┼───────┼─────────────┼─────────────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────┤
│ 16456    │ 2087        │ M-MLV1.4 │ 3     │ E183116-A03 │ VP7R810400/021X1    │ MA-000005198     │ VY0750031-SUCB-819M  │ 1        │ NULL        │ B01 │ 2019-10-31 │ 00:05:14   │ 2019-10-31 │ 03:05:41 │
╘══════════╧═════════════╧══════════╧═══════╧═════════════╧═════════════════════╧══════════════════╧══════════════════════╧══════════╧═════════════╧═════╧════════════╧════════════╧════════════╧══════════╛

我试图获得唯一性 Production order、最小开始日期、开始时间和最大结束日期和结束时间,例如

SELECT
        [Production order], MIN( CAST([Start Date] AS DATETIME) + CAST([Start Time] AS DATETIME))   AS MIN_DATE_TIME, MAX(CAST([End Date] AS DATETIME) + CAST([End Time] AS DATETIME)) AS MAX_DATE_TIME
    FROM
        TIMEDATA1
    WHERE RESOURCE not like 'I-%'
    GROUP BY
        [Production order]
    order by 
        [Production order] ASC

但是,只有 Production order, MIN_DATE_TIME, MAX_DATE_TIME 列。我可以查询。 我试过查询

   SELECT
   distinct [Production order] ,PN, ProjectID,[Drawing No], MIN( CAST([Start Date] AS DATETIME) + CAST([Start Time] AS DATETIME))   AS MIN_DATE_TIME, MAX(CAST([End Date] AS DATETIME) + CAST([End Time] AS DATETIME)) AS MAX_DATE_TIME
FROM
    TIMEDATA1
WHERE RESOURCE not like 'I-%'
GROUP BY
    [Production order]
order by 
    [Production order] ASC

报错是这样的

我希望获得更多专栏,例如 PN, ProjectID, Drawing No

请帮帮我,非常感谢!

将您的第一个结果放入 CTE 或子查询中并返回到主查询 table:

;最小最大值为( SELECT [生产订单], MIN( CAST([开始日期] AS DATETIME) + CAST([开始时间] AS DATETIME)) AS MIN_DATE_TIME, MAX(CAST([结束日期] AS DATETIME) + CAST([End时间] AS DATETIME)) AS MAX_DATE_TIME 从 时间数据1 WHERE RESOURCE 不像 'I-%' 通过...分组 [产品订单] 订购方式 [生产订单] ASC ) SELECT TD.*, MM.Min_Date_Time, MM.Max_Date_Time 从时间数据 1 TD MM 上的 INNER JOIN MinMax MM。[生产订单] = TD。[生产订单]

将您的第一个结果放入 CTE 或子查询中并返回到主查询 table:

;with MinMax as (
SELECT
   [Production order], MIN( CAST([Start Date] AS DATETIME) + CAST([Start Time] AS 
DATETIME))   AS MIN_DATE_TIME, MAX(CAST([End Date] AS DATETIME) + CAST([End Time] AS 
DATETIME)) AS MAX_DATE_TIME
    FROM
        TIMEDATA1
    WHERE RESOURCE not like 'I-%'
    GROUP BY
        [Production order]
    order by 
        [Production order] ASC
)
SELECT TD.*, MM.Min_Date_Time, MM.Max_Date_Time
FROM TIMEDATA1 TD 
      INNER JOIN MinMax MM on MM.[Production order] = TD.[Production order]

GROUP BY 中包含额外的列:

SELECT [Production order], PN, ProjectID,[ Drawing No],
       MIN( CAST([Start Date] AS DATETIME) + CAST([Start Time] AS DATETIME)) AS MIN_DATE_TIME,
       MAX(CAST([End Date] AS DATETIME) + CAST([End Time] AS DATETIME)) AS MAX_DATE_TIME
FROM TIMEDATA1
WHERE RESOURCE not like 'I-%'
GROUP BY [Production order], PN, ProjectID,[ Drawing No]
ORDER BY [Production order] ASC;

所有 non-aggregated 列应在 GROUP BY.

如果每个生产订单 returns 多行,那是因为值不同。您需要指定在这种情况下要做什么。如果这是一个问题,我建议您提出 new 问题,提供示例数据、所需结果以及对操作的清晰解释。数据应该是文本表格而不是图像。