|
Select вопрос
|
|||
---|---|---|---|
#18+
SELECT IIF(.T.,0,MAX(zakaz_ar.ag)) AS ag FROM zakaz_ar Почему выдаёт ошибку? И как сделать, чтоб не было ошибки.... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 08:31 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
q1w1e1, выполнил запрос на своей таблице. Селект честно отдал 0, как и ожидалось. Никакой ошибки не было, что я делаю не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 08:58 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
SELECT MAX(IIF(.T.,0,zakaz_ar.ag)) AS ag FROM zakaz_ar ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 09:08 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
Извиняюсь, не совсем корректно задал вопрос, дело в том, что в таблице zakaz_ar, нет поля ag, под этим псевдонимом выступает другая таблица, с другими полями, поэтому и хотелось бы знать, если в этой таблице нет каких-то определённых полей то 0, иначе суммирование по эти полям... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 09:08 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
q1w1e1, вместо "иначе суммирование по эти полям", хотел написать "иначе MAX по эти полям", правда без разницы, всё равно агрегативные функции... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 09:13 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
Пятница? Трудная неделя? local lcField FOR i=1 TO FCOUNT('tMyTable') IF LOWER(FIELD(i))=='ag' lcField=.T. exit ENDIF ENDFOR if lcField SELECT MAX(zakaz_ar.ag) AS ag FROM tMyTable endif ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 09:27 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 09:31 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
Да я всё это понимаю... :(, и в этом коде if llField SELECT MAX(zakaz_ar.ag) AS ag FROM tMyTable ENDIF Надо поставить "ELSE" , и потом если что-то исправить, то править надо уже два SELECT(а), вероятность ошибки возрастает, хорошо если они рядом, а если разнесены ужасно много строчным кодом...да вы сами всё понимаете, поэтому и хотелось бы всю эту конструкцию иметь в одном SELECt(е), а не делать проверку на наличие поля, а затем уже от этого значения, или так или так, выполнять SELECT, поэтому и подумал воспользоваться IIF(ом) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 10:00 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
С вашего позволения рехтану немного ..? и если я правильно понял топикастера :) Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 10:01 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
q1w1e1, Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 10:10 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
Шестипалов, поля checked_field точно нет в таблице mytable, и не выдаёт ошибки? Конструкция IF FIELD(i)=='AG' SELECT MAX(ag) ag FROM <MyTable> ELSE SELECT MAX(cast(0 as <Тип поля AG>)) ag FROM <MyTable> ENDIF тоже не подходит, надо IIF() в одном SELECT ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 10:51 |
|
Select вопрос
|
|||
---|---|---|---|
#18+
констатация: шибсдец. ну до кучи порезвитесь над функцией fsize ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2010, 10:52 |
|
|
start [/forum/topic.php?fid=41&msg=36437729&tid=1585642]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 326ms |
total: | 470ms |
0 / 0 |