Microsoft Access 2003 - создание отдельного поля из 5 других полей таблицы - PullRequest
0 голосов
/ 02 февраля 2010

Это то, что у меня есть в коде SQL ........

SELECT DISTINCTROW [OEE/A Query].Press, 
Sum([OEE/A Query].[SumOfLabor Hours]) AS [Sum Of SumOfLabor Hours], 
Sum([OEE/A Query].[SumOfGood Pieces]) AS [Sum Of SumOfGood Pieces], 
Sum([OEE/A Query].[Scrap Pieces]) AS [SumOfScrap Pieces], 
Sum([OEE/A Query].[SumOfMachine Hours]) AS [SumOfSumOfMachine Hours], 
Sum([OEE/A Query].[Total Parts Hours Earned]) AS [SumOfTotal Parts Hours Earned], 
Sum([OEE/A Query].[Standard Pcs Expected]) AS [Stand Pcs Expected]
FROM [OEE/A Query]
GROUP BY [OEE/A Query].Press;

Как добавить в этот код еще одно поле, которое насчитывает 5 отдельных полей?

Вот то, что я думаю, это может выглядеть, но я не уверен .....

SELECT Sum(Sort+Straighten+Shine+Standardize+Sustain)
   SUM(Sort),
   SUM(Straighten),
   SUM(Shine),
   SUM(Standardize),
   SUM(Sustain),
FROM [Shift Report Table];

Ответы [ 2 ]

1 голос
/ 02 февраля 2010

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

Если вы хотите добавить еще один столбец в ваш первый пример запроса на основе столбцов, которые уже существуют в вашем запросе, то да, просто добавьте их вместе, как говорит CK.

, например

select sum(column1) + sum(column2) as sum_c1_c2

или

select sum(column1 + column2) as sum_c1_c2

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

select sum(nz(column1,0) + nz(column2,0)) as sum_c1_c2   

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

Кроме того, предупреждающее слово об отличительной строке - я не уверен, что вы хотите использовать это в своем запросе. Вы создаете группу по, поэтому будут выбраны только уникальные значения для [press] с агрегированными столбцами в соответствии с вашей функцией SUM (). Это действительно удобно для таких вещей, как определение того, заказан ли (в качестве примера) Продукт, например,

select DISTINCTROW productname
from products
inner join orders on orders.productid = products.productid

вернет только 1 строку, поэтому в любом случае нет никаких шансов для агрегирования.

Но вы можете уточнить ваше требование немного больше. CK, возможно, уже дал ответ, или нам может потребоваться включить другой источник данных (например, ваш второй запрос).

0 голосов
/ 02 февраля 2010

Да, это правильно. Вы можете добавить поля в функцию sum, чтобы суммировать сумму полей.

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