Выберите и отфильтруйте дублирующую базу на 2 столбца - PullRequest
0 голосов
/ 06 июля 2018

У меня есть запрос, который связан с большим CSV-файлом источника данных, мне действительно не нравится этот запрос, который я использую, и DISTINCT, который я использовал, действительно отфильтровывает некоторый столбец даты и времени. Индекс Num. должен отличаться от серийного кода HC, формата даты и времени. Вывод должен быть таким

  SELECT        DISTINCT [Index Num#], [HC SERIAL CODE], MIN(Format([Date time], 'yyyy-MM-dd')) AS Startdate, MIN(Format([Date time], 'HH:mm')) AS Starttime
FROM            combinedKPI.csv
WHERE        Format([Date time], 'yyyy-MM-dd') BETWEEN DATE () AND DATE () - 111
GROUP BY [Index Num#], [HC SERIAL CODE],Format([Date time], 'yyyy-MM-dd')
ORDER BY [HC SERIAL CODE], Format([Date time], 'yyyy-MM-dd')

enter image description here

Вывод должен быть таким

HC Serial Code   Index Num.      Start Date     Start time
    xx072               1        15/06/2018     17:29
    xx072               1        03/07/2018     17:02
    1401                1        12/12/2016     06:00

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

GROUP BY и min() являются причиной того, что определенное время не отображается. Просто используйте DISINCT и оставьте GROUP BY и min().

SELECT DISTINCT
       [hc serial code]
       [index num#],
       format([date time], 'yyyy-MM-dd') startdate,
       format([date time], 'HH:mm') starttime
       FROM combinedKPI.csv
       WHERE Format([date time], 'yyyy-MM-dd') BETWEEN date()
                                               AND date() - 111
       ORDER BY [hc serial code],
                format([date time], 'yyyy-MM-dd');
0 голосов
/ 06 июля 2018

Вам просто нужно DISTINCT:

SELECT DISTINCT [HC SERIAL CODE], [Index Num#], 
       CAST([Date time] AS Date) AS StartDate, CAST([Date time] AS TIME(0)) AS Starttime
FROM combinedKPI.csv 
WHERE CAST([Date time] AS Date) >= CAST(GETDATE() AS Date) AND
      CAST([Date time] AS Date) <= DATEADD(DAY, -111, GETDATE());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...