Суммирование вычисленного поля в том же запросе это можно сделать? - PullRequest
1 голос
/ 09 августа 2011
PARAMETERS [First Date] DateTime, [Second Date] DateTime, [Shift] Text ( 255 );
SELECT
    Main.[Mth/day],
    Main.Shift,
    ([Run Hrs]*[Actual Lbs/hr]) AS [Gross Production - LBS],
    [Scrap Lbs 1]+[Scrap Lbs 2]+[Scrap Lbs 3] AS [Scrap Produced - LBS],
    [Run Hrs]*[Actual Lbs/hr]-([Scrap Lbs 1]+[Scrap Lbs 2]+[Scrap Lbs 3]) AS [Net Production],
    [Run Hrs]*[Actual Lbs/hr]*0.035 AS [Scrap Target],
    [Run Hrs]*[Std lbs/hr]-([Run Hrs]*[Actual Lbs/hr])*0.035 AS [Target Net Production],
    [Run Hrs]*[Std lbs/hr] AS [Target Gross Production],
    (([Run Hrs]*[Std Lbs/hr])/([Run Hrs]*[Actual Lbs/hr]*0.035)) AS [Target Scrap Rate]
FROM Main
WHERE
    (((Main.[Mth/day]) Between [First Date] And [Second Date]
    And [Shift]=Main.Shift
    And [Std lbs/hr]>0));

Мне нужно также суммировать каждое вычисленное поле, чтобы они могли также получать ежемесячные сводки и тому подобное. Могу ли я сделать это в том же запросе, или я лучше сделать другой запрос на основе результатов этого?

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Это действительно то, что должно обрабатываться во внешнем интерфейсе или в составителе отчетов, а не через SQL.

В MS Access 2007 должно работать следующее:

  1. Откройтеотчет в виде макета
  2. Нажмите на одну из ячеек в столбце, которую вы хотите заполнить
  3. На вкладке Формат нажмите Итого ивыберите Сумма

В нижний колонтитул отчета должна быть добавлена ​​ячейка с вашим агрегатом.

2 голосов
/ 09 августа 2011

Начните с запроса, который использует только поля и выражения полей, которые не используют Агрегатные функции SQL .Затем сохраните этот запрос и используйте его в качестве источника данных для другого запроса, в котором вы выполняете суммирование и любые другие агрегатные функции.

В других случаях вы можете взять только SQL из первого запроса и использовать его какподзапрос в другом запросе.Однако из-за этих квадратных скобок, требуемых для имен, этот был бы проблематичным в качестве подзапроса.

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

...