|
16.11.2006, 18:21 | #1 |
Участник
|
спасибо за тему - понастольгтировал
|
|
17.11.2006, 10:13 | #2 |
MCTS
|
а если я хочу после этой конструкции обратиться не к полученной переменной, которая содержит подсчитанную сумму, а к полю записи этой таблицы (т.е. к обычному текущему курсору), тогда интересно что делать? Ведь если я пишу
RPayTrans.Amount, то это выдаст ту самую сумму по записям, с другой стороны, мне нужно обратиться к конкретной записи по полю, т.е. RPayTrans.Amount - как тогда быть? |
|
17.11.2006, 10:21 | #3 |
Злыдни
|
Сделать выборку записи, т.е. select без агрегирования
|
|
|
За это сообщение автора поблагодарили: Eldar9x (1). |
17.11.2006, 10:22 | #4 |
Программатор
|
|
|
|
За это сообщение автора поблагодарили: Eldar9x (1). |
17.11.2006, 10:28 | #5 |
Moderator
|
Eldar9x, рекомендую еще обратить внимание на мою тему Прикольная конструкция: оператор select с полем (она также внизу болтается в "Похожих темах" к этой теме). Думаю, Вам понравится.
|
|
31.01.2007, 19:07 | #6 |
Участник
|
Добрый вечер!
У меня есть название поля в таблице считай "amount", т.е : fieldId = fieldName2Id(tableNum(RPayTrans), "amount"); RPayTrans.(fieldId); Как мне к нему обратится, в конструкции "Select sum() from"? |
|
01.02.2007, 14:03 | #7 |
Участник
|
Можно так:
X++: Query q = new Query(''); QueryBuildDatSource ds; ; ds = q.addDataSource(TableNum(RPayTrans)); ds.addSelectiontField(fieldName2Id(tableNum(RPayTrans), "amount"), SelectionField::Sum); |
|
01.02.2007, 15:41 | #8 |
Участник
|
|
|
01.02.2007, 16:10 | #9 |
Участник
|
Трудно сказать. Правильнее наверное было бы не передавать. То ли в предыдущих версиях аксапты этот параметр был обязательным, то ли у предыдущего программиста были свои сообращения на этот счет. Но факт остается фактом - данная конструкция благодаря буферу обмена расплодилась по всему коду приложения.
|
|
01.02.2007, 16:41 | #10 |
Участник
|
А еще CTE (они, кстати, появились в MS SQL 2005) можно определять рекурсивно:
Код: WITH DirectReports(ManagerID, EmployeeID, EmployeeLevel) AS ( SELECT ManagerID, EmployeeID, 0 AS EmployeeLevel FROM HumanResources.Employee WHERE ManagerID IS NULL UNION ALL SELECT e.ManagerID, e.EmployeeID, EmployeeLevel + 1 FROM HumanResources.Employee e INNER JOIN DirectReports d ON e.ManagerID = d.EmployeeID ) SELECT ManagerID, EmployeeID, EmployeeLevel FROM DirectReports ; Последний раз редактировалось belugin; 01.02.2007 в 16:43. |
|
Теги |
amount, запрос (query), как правильно |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|