问题
I'm using Microsoft SQL Server. And Here is my table Added sample data format text as 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 │
╘══════════╧═════════════╧══════════╧═══════╧═════════════╧═════════════════════╧══════════════════╧══════════════════════╧══════════╧═════════════╧═════╧════════════╧════════════╧════════════╧══════════╛
I tried to get unique Production order
, Min start date, start time and Max end date and end time like
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
However, There are only Production order, MIN_DATE_TIME, MAX_DATE_TIME
column. That I can query.
I tried with query
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
It showed error like this
I expect to get more column such as PN, ProjectID, Drawing No
Please help me, Thank you so much !
回答1:
Include the additional columns in the 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;
All non-aggregated columns should be in the GROUP BY
.
If this returns multiple rows per production order, that is because the values are different. You need to specify what you want to do in such a situation. If this is an issue, I would recommend that you ask a new question, providing sample data, desired results, and a clear explanation of what to do. The data should be text tables not images.
回答2:
Put your first result in a CTE or subquery and join back to the main 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]
回答3:
Put your first result in a CTE or subquery and join back to the main 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]
来源:https://stackoverflow.com/questions/64258274/query-sql-to-get-all-column-and-min-max-datetime-by-mssql