SQL примеры
В этом разделе приведено несколько примеров SQL. Примеры параметров подстановки и список параметров подстановки:

Этот запрос возвращает материалы, перемещенные единицами оборудования между источниками и местами назначения в течение одной или нескольких смен. Сумма тонн, перемещенная для каждой единицы оборудования в течение каждой смены, также сообщается:
SELECT | Shkey AS Shift, | --Смена, в течение которой перемещалась ГМ |
Equipment_Description AS Truck, | --Описание оборудования | |
Source_Description, | --Описание тоннажа, перемещенного с участка | |
Destination_Description, | --Описание тоннажа, перемещенного на участок | |
Material_Description, | --Описание перемещенного материала | |
SUM(measurevalue) AS VALUE | --Сумма перевезенных тонн | |
FROM | alloctntimestamp a | |
JOIN | measuretimestamp m | |
ON a.tskey = m.tskey | ||
JOIN | V_EQUIPMENT e | |
ON e.EQUIPMENTCODE = a.EQUIPMENT | ||
JOIN | V_EQUIPMENT_MODEL em | |
ON e.Equipment_Model_Code = em.Equipment_Model_Code | ||
JOIN | V_EQUIPMENT_FUNCTION ef | |
ON em.Equipment_Model_Function_Code = ef.Equipment_Function_Code | ||
JOIN | V_LOCATIONS | |
ON a.Location = V_LOCATIONS.SourceCode | ||
JOIN | V_DESTINATIONS d | |
ON a.destn = d.destination_Code | ||
JOIN | V_MEASCODE | |
ON V_MEASCODE.MeasureCode = m.MeasCode | ||
JOIN | V_SHIFTLOG | |
ON a.shkey = shiftcode | ||
JOIN | V_MATERIAL ma | |
ON a.MATERIAL = ma.MaterialCode | ||
JOIN | V_CATEGORY mc | |
ON ma.Material_Category_Code = mc.Material_Category_Code | ||
JOIN | V_GROUP mg | |
ON mc.Material_Category_Group_Code = mg.Material_Group_Code | ||
WHERE | Equipment_Function_Code = 'HAULING' | --Этот фильтр ограничивает выбор транспортным оборудованием. |
AND Period_Month = 'Oct-2013' | --и тонны, транспортированные в течение октября 2013 г. | |
AND meascode = 'TONNE' | ||
GROUP BY | Shkey, | |
Equipment_Description, | ||
Source_Description, | ||
Destination_Description, | ||
Material_Description, |

Этот запрос возвращает измерения по бурению, записанные в различных местах оборудованием в течение определенного периода. Сумма измерений, зарегистрированных в течение периода для каждой единицы оборудования также сообщается:
ВЫБРАТЬ | Shkey AS Shift, | --Смена, во время которой записывались измерения |
Equipment_Description AS Equipment, | --Описание оборудования | |
Source_Description, | --Описание участка, на котором было записано измерение | |
MeasCode, | --Код записанного измерения | |
Measure_Description, | --Описание записанного измерения | |
SUM(measurevalue) AS VALUE | --Сумма значений измерений | |
FROM | alloctntimestamp a | |
JOIN | measuretimestamp m | |
ON a.tskey = m.tskey | ||
JOIN | V_EQUIPMENT e | |
ON e.EQUIPMENTCODE = a.EQUIPMENT | ||
JOIN | V_EQUIPMENT_MODEL em | |
ON e.Equipment_Model_Code = em.Equipment_Model_Code | ||
JOIN | V_EQUIPMENT_FUNCTION ef | |
ON em.Equipment_Model_Function_Code = ef.Equipment_Function_Code | ||
JOIN | V_LOCATIONS | |
ON a.Location = V_LOCATIONS.SourceCode | ||
JOIN | V_MEASCODE | |
ON V_MEASCODE.MeasureCode = m.MeasCode | ||
JOIN | V_SHIFTLOG | |
ON a.shkey = shiftcode | ||
WHERE | Equipment_Function_Code = 'DD' | --Этот фильтр ограничивает выбор до оборудования DD |
AND Period_Month = 'Oct-2013' | --и до измерений, полученным в октябре 2013 года | |
GROUP BY | Shkey, | |
Equipment_Description, | ||
Source_Description, | ||
MeasCode, | ||
Measure_Description |

В этом запросе указываются часы работы и сумма измерений, записанных операторами оборудования в течение конкретной смены.
ВЫБРАТЬ | Shkey AS Shift, | --Смена, во время которой записывались измерения |
Operator_description AS OPERATOR, | --Описание оператора | |
MeasCode, | --Код записанного измерения | |
Measure_Description, | --Описание записанного измерения | |
SUM(measurevalue)/3600 AS [Hours] | --Сумма значения измерения (секунды/3600) | |
FROM | alloctntimestamp a | |
JOIN | measuretimestamp m | |
ON a.tskey = m.tskey | ||
JOIN | V_OPERATORS o | |
ON a.Operator = o.operatorcode | ||
JOIN | V_MEASCODE | |
ON V_MEASCODE.MeasureCode = m.MeasCode | ||
JOIN | V_SHIFTLOG | |
ON a.shkey = shiftcode | ||
WHERE | Period_Shift_Code = '20131031P2' | --Этот фильтр возвращает время, зарегистрированное для ночной смены. |
AND MeasCode = 'SECONDS' | -- 31.10.2013 г. | |
GROUP BY | Shkey, | |
Operator_Description, | ||
MeasCode, | ||
Measure_Description |

Этот запрос был расширен, чтобы сообщить о статусе, а также о рабочих часах и сумме измерений, записанных конкретным оператором во время смены.
ВЫБРАТЬ | Shkey КАК Смена, | --Смена, во время которой записывались измерения |
Operator_description КАК ОПЕРАТОР, | --Описание оператора | |
Status_Group_Description, | --Описание статуса группы | |
Status_Description, | --Описание статуса | |
MeasCode, | --Код записанного измерения | |
Measure_Description, | --Описание записанного измерения | |
SUM(measurevalue)/3600 AS [Hours] | --Сумма значения измерения (секунды/3600) | |
FROM | alloctntimestamp a | |
JOIN | measuretimestamp m | |
ON a.tskey = m.tskey | ||
JOIN | V_OPERATORS o | |
ON a.Operator = o.operatorcode | ||
JOIN | V_MEASCODE | |
ON V_MEASCODE.MeasureCode = m.MeasCode | ||
JOIN | V_SHIFTLOG | |
ON a.shkey = shiftcode | ||
JOIN | V_STATUS s | |
ON a.STATUS = s.STATUSCODE | ||
JOIN | V_STATUS_CATEGORY sc | |
ON s.Status_Category_Code = sc.Status_Category_Code | ||
JOIN | V_STATUS_TYPE st | |
ON sc.Status_Category_Type_Code = st.Status_Type_Code | ||
JOIN | V_STATUS_GROUP sg | |
ON st.Status_Type_Group_Code = sg.Status_Group_Code | ||
WHERE | Period_Shift_Code = '20131031P2' | --Фильтр выдает время регистрации для Ночной смены |
AND MeasCode = 'SECONDS' | -- 31/10/2013 для конкретного оператора | |
AND Operator_Description = 'Michael Hartzer' | ||
GROUP BY | Shkey, | |
Operator_Description, | ||
Status_Group_Description, | ||
Status_Description, | ||
MeasCode, | ||
Measure_Description |

В следующем примере мы хотим, чтобы во время запуска отчета была произведена выборка ПЕРИОД и ОПЕРАТОР. Подстановки выделены жирным шрифтом:
ВЫБРАТЬ | Shkey AS Shift, | --Смена, во время которой записывались измерения |
Operator_description AS OPERATOR, | --Описание оператора | |
MeasCode, | --Код записанного измерения | |
Measure_Description, | --Описание записанного измерения | |
SUM(measurevalue)/3600 AS [Hours] | --Сумма значения измерения (секунды/3600) | |
FROM | alloctntimestamp a | |
JOIN | measuretimestamp m | |
ON a.tskey = m.tskey | ||
JOIN | V_OPERATORS o | |
ON a.Operator = o.operatorcode | ||
AND[WhereCriteria:Operator] | -- Оператор, который сейчас выбирается подстановкой | |
JOIN | V_MEASCODE | |
ON V_MEASCODE.MeasureCode = m.MeasCode | ||
JOIN | V_SHIFTLOG | |
ON a.shkey = shiftcode | ||
AND[WhereCriteria:Operator] | -- Период, который сейчас выбирается подстановкой | |
WHERE | MeasCode = 'SECONDS' | |
GROUP BY | Shkey, | |
Operator_Description, | ||
MeasCode, | ||
Measure_Description |

Еще одно использование параметров подстановки - суммирование данных в отчете. Вы можете произвести суммирование по любому атрибуту, если в запрос включены соответствующие таблицы и просмотры. В следующем запросе были добавлены подстановки [ВыбратьКритерй "Период] и [КритерийГруппы;Период], они показаны жирным шрифтом:
ВЫБРАТЬ | [SelectCritera:Period], | --Смена, выбранная сейчас подстановкой |
Operator_description AS OPERATOR, | --Описание оператора | |
MeasCode, | --Код записанного измерения | |
Measure_Description, | --Описание записанного измерения | |
SUM(measurevalue)/3600 AS [Hours] | --Сумма значения измерения (секунды/3600) | |
FROM | alloctntimestamp a | |
JOIN | measuretimestamp m | |
ON a.tskey = m.tskey | ||
JOIN | V_OPERATORS o | |
ON a.Operator = o.operatorcode | ||
AND [WhereCriteria:Operator] | -- Оператор, выбранный подстановкой | |
JOIN | V_MEASCODE | |
ON V_MEASCODE.MeasureCode = m.MeasCode | ||
JOIN | V_SHIFTLOG | |
ON a.shkey = shiftcode AND [WhereCriteria:Operator] | -- Период, выбранный подстановкой | |
WHERE | MeasCode = 'SECONDS' | |
GROUP BY | [GroupCritera:Period], | -- Группировать по периоду, который сейчас выбирается подстановкой |
Operator_Description, | ||
MeasCode, | ||
Measure_Description |