|
![]() |
#1 |
Участник
|
спасибо за тему - понастольгтировал
![]() |
|
![]() |
#2 |
MCTS
|
а если я хочу после этой конструкции обратиться не к полученной переменной, которая содержит подсчитанную сумму, а к полю записи этой таблицы (т.е. к обычному текущему курсору), тогда интересно что делать? Ведь если я пишу
RPayTrans.Amount, то это выдаст ту самую сумму по записям, с другой стороны, мне нужно обратиться к конкретной записи по полю, т.е. RPayTrans.Amount - как тогда быть? |
|
![]() |
#3 |
Злыдни
|
Сделать выборку записи, т.е. select без агрегирования
![]() |
|
|
За это сообщение автора поблагодарили: Eldar9x (1). |
![]() |
#4 |
Программатор
|
|
|
|
За это сообщение автора поблагодарили: Eldar9x (1). |
![]() |
#5 |
Moderator
|
Eldar9x, рекомендую еще обратить внимание на мою тему Прикольная конструкция: оператор select с полем (она также внизу болтается в "Похожих темах" к этой теме). Думаю, Вам понравится.
![]() |
|
![]() |
#6 |
Участник
|
Добрый вечер!
У меня есть название поля в таблице считай "amount", т.е : fieldId = fieldName2Id(tableNum(RPayTrans), "amount"); RPayTrans.(fieldId); Как мне к нему обратится, в конструкции "Select sum() from"? |
|
![]() |
#7 |
Участник
|
Можно так:
X++: Query q = new Query(''); QueryBuildDatSource ds; ; ds = q.addDataSource(TableNum(RPayTrans)); ds.addSelectiontField(fieldName2Id(tableNum(RPayTrans), "amount"), SelectionField::Sum); |
|
![]() |
#8 |
Участник
|
|
|
![]() |
#9 |
Участник
|
Трудно сказать. Правильнее наверное было бы не передавать. То ли в предыдущих версиях аксапты этот параметр был обязательным, то ли у предыдущего программиста были свои сообращения на этот счет. Но факт остается фактом - данная конструкция благодаря буферу обмена расплодилась по всему коду приложения.
|
|
![]() |
#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. |
|