【发布时间】:2020-10-09 03:23:05
【问题描述】:
在 Microsoft SQL Server 中查询
select *
from TIMEDATA1
order by [Production order] asc
我得到这样的数据:
╔══════════╤═════════════╤══════════╤═══════╤═════════════╤════════════╤══════════════════╤══════════════════════╤══════════╤═════════════╤═════╤════════════╤════════════╤════════════╤══════════╗
║ 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 │ 1A │ MA-000000001 │ SHAFT-DBT-999M │ 1 │ NULL │ B01 │ 2020-10-05 │ 13:23:27 │ NULL │ NULL ║
╟──────────┼─────────────┼──────────┼───────┼─────────────┼────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────╢
║ 8354 │ 2029 │ M-JO │ HC │ E183127-A01 │ 2A │ MA-000001FAB │ VY1200-DISE-700F1 │ 7 │ NULL │ B01 │ 2019-09-23 │ 09:41:48 │ 2019-09-23 │ 14:38:18 ║
╟──────────┼─────────────┼──────────┼───────┼─────────────┼────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────╢
║ 8408 │ 2058 │ M-MD2.5 │ 1 │ E183127-A02 │ 3A │ MA-000001FAB │ VY1200-DISE-700F2 │ 7 │ NULL │ B01 │ 2019-09-23 │ 15:32:53 │ 2019-09-23 │ 16:51:19 ║
╟──────────┼─────────────┼──────────┼───────┼─────────────┼────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────╢
║ 50130 │ 2175 │ M-ML1.5 │ HC │ L190004-A01 │ 4A │ 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-A02 │ 4B │ 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-A07 │ 5C │ 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-A08 │ 5C │ 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-A05 │ 2AW │ 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 │ 1A │ 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 │ Q │ MA-000005198 │ VY0750031-SUCB-819M1 │ 1 │ NULL │ B01 │ 2019-09-21 │ 02:30:14 │ 2019-09-21 │ 06:00:00 ║
╟──────────┼─────────────┼──────────┼───────┼─────────────┼────────────┼──────────────────┼──────────────────────┼──────────┼─────────────┼─────┼────────────┼────────────┼────────────┼──────────╢
║ 8052 │ 2028 │ M-MLV1.6 │ 1 │ E183116-A02 │ P │ 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 │ X │ MA-000005198 │ VY0750031-SUCB-819M │ 1 │ NULL │ B01 │ 2019-09-21 │ 14:05:12 │ 2019-09-21 │ 15:36:38 ║
╚══════════╧═════════════╧══════════╧═══════╧═════════════╧════════════╧══════════════════╧══════════════════════╧══════════╧═════════════╧═════╧════════════╧════════════╧════════════╧══════════╝
我试过查询
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;
但是,它会为每个生产订单返回多行。 我希望查询有表为
╔══════════════════╤══════════════════════╤═════════════╤════════════╤═════════════════════════╤═════════════════════════╗
║ Production order │ PN │ ProjectID │ Drawing No │ MIN_DATE_TIME │ MAX_DATE_TIME ║
╠══════════════════╪══════════════════════╪═════════════╪════════════╪═════════════════════════╪═════════════════════════╣
║ MA-000000001 │ SHAFT-DBT-999M │ E195256-A01 │ 1A │ 2020-10-05 13:23:27.000 │ NULL ║
╟──────────────────┼──────────────────────┼─────────────┼────────────┼─────────────────────────┼─────────────────────────╢
║ MA-000001FAB │ VY1200-DISE-700F1 │ E183127-A01 │ 2A │ 2019-09-23 09:41:48.000 │ 2019-09-23 16:51:19.000 ║
╟──────────────────┼──────────────────────┼─────────────┼────────────┼─────────────────────────┼─────────────────────────╢
║ MA-000001PHA │ L190004-A01-051-023C │ L190004-A01 │ 4A │ 2020-05-19 15:59:23.000 │ 2020-05-20 16:53:53.000 ║
╟──────────────────┼──────────────────────┼─────────────┼────────────┼─────────────────────────┼─────────────────────────╢
║ MA-000002PHA │ L190004-A01-005-023C │ L190004-A07 │ 5C │ 2020-05-22 10:11:08.000 │ 2020-05-23 11:38:03.000 ║
╟──────────────────┼──────────────────────┼─────────────┼────────────┼─────────────────────────┼─────────────────────────╢
║ MA-000003PHA │ E203089-A01-005-023C │ E203089-A01 │ 2AW │ 2020-05-28 13:23:48.000 │ 2020-05-29 12:51:25.000 ║
╟──────────────────┼──────────────────────┼─────────────┼────────────┼─────────────────────────┼─────────────────────────╢
║ MA-000005198 │ VY0750031-SUCB-819M1 │ E183116-A03 │ Q │ 2019-09-21 02:30:14.000 │ 2019-10-21 15:36:38.000 ║
╚══════════════════╧══════════════════════╧═════════════╧════════════╧═════════════════════════╧═════════════════════════╝
注意:Production order 应该是唯一值。 PN, ProjectID, Drawing No 也应该是唯一值。可以从第一行或任何一行获取。
MIN_DATE_TIME 是MIN( CAST([Start Date] AS DATETIME) + CAST([Start Time] AS DATETIME))
MAX_DATE_TIME 是MAX(CAST([End Date] AS DATETIME) + CAST([End Time] AS DATETIME))
Query SQL to get all column and min max datetime by MSSQL 有类似的问题
我尝试回答结果,但是@Gordon Linoff 提到这会为每个生产订单返回多行,这是因为值不同 请帮我。谢谢!
编辑
数据类型
开始日期:日期
结束日期:日期
开始时间:时间(0)
结束时间:time(0)
我知道这份报告的设计很糟糕。但我做它是为了其他目的
【问题讨论】:
-
您的表中的生产订单列显然有重复值。什么决定了独特的价值?
-
start_date/start_time 和 end_date/end_time 列的数据类型是什么?
-
@JoelCoehoorn start_date/start_time 列的数据类型是日期/时间(0)。 end_date/end_time 列也是日期/时间(0)
标签: sql sql-server tsql