Могу ли я присоединиться к предыдущему запросу SQL, а затем выполнить подсчет - PullRequest
0 голосов
/ 24 сентября 2019

Я создал запрос из довольно большой базы данных.На данный момент каждая отдельная процедура, выполняемая сотрудником, отображается в виде 3 одинаковых временных рядов. Каждая строка информирует сайт о том, где произошла процедура, использованная часть оборудования и день или ночь.Я хочу объединить строки с совпадающими именем и временем, чтобы создать единую строку, содержащую все остальные поля.Затем я хочу иметь возможность создать журнал для сотрудника, чтобы показать, сколько было выполнено каждой процедуры, а также какой сайт и метод использовались.

Я думаю, что внутреннее объединение может быть лучшим способом сделать это, нобыл бы признателен за дополнительную помощь о том, как настроить это для подзапроса.

Текущий запрос:

SELECT procedure, employee, chart_time, form,  
FROM cust.records 
WHERE employeeID IN () AND procedurelabel LIKE 'rad1'

Действительно признателен за помощь

1 Ответ

0 голосов
/ 24 сентября 2019

Ваш вопрос может использовать небольшое пояснение ... не в последнюю очередь, это DDL для вашей таблицы и несколько заметок о том, что представляет собой каждый столбец.Тем не менее, предполагая, что все эти строки находятся в таблице cust.records, и что каждый набор из 3 строк имеет уникальную комбинацию имени и времени, вы можете сделать что-то вроде этого ...

SELECT -- first select fields common to all rows... may as well take these from the first table
       records1.procedure, records1.employee, records1.chart_time, 
       -- ... then select records from your joins
       records2.some_column,  
       records3.some_column
  FROM cust.records records1 
 INNER JOIN WHERE cust.records records2 on records1.chart_time = records2.chart_time
                                       and records1.procedure = record2.procedure
                                       and records1.employee = records2.employee
                                       -- Possible condition required here to not join this row to itself
                                       -- or to explicitly join to a specific type of row
 INNER JOIN WHERE cust.records records3 on records1.chart_time = records3.chart_time
                                       and records1.procedure = record3.procedure
                                       and records1.employee = records3.employee
                                       -- Possible condition required here to not join this row to itself
                                       -- or to explicitly join to a specific type of row

 WHERE employeeID IN () 
   AND procedurelabel LIKE 'rad1'
   -- Possible condition required here specify the row to select for records1.

Может также бытьСтоит подумать о редизайне таблицы, поскольку то, что вы описали, не звучит нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...