首页 > 解决方案 > 查询 SQL 以通过 MSSQL 获取所有列和最小最大日期时间

问题描述

我正在使用 Microsoft SQL Server。这是我的表格 添加了示例数据格式文本作为表格在此处输入图像描述

╒══════════╤═════════════╤══════════╤═══════╤═════════════╤═════════════════════╤══════════════════╤══════════════════════╤══════════╤═════════════╤═════╤════════════╤════════════╤════════════╤══════════╕
│ 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

请帮助我,非常感谢!

标签: sqlsql-servertsqlselectunique

解决方案


在 中包括附加列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;

所有非聚合列都应该在GROUP BY.

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


推荐阅读