powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Select вопрос
13 сообщений из 13, страница 1 из 1
Select вопрос
    #36437670
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT IIF(.T.,0,MAX(zakaz_ar.ag)) AS ag FROM zakaz_ar
Почему выдаёт ошибку?
И как сделать, чтоб не было ошибки....
...
Рейтинг: 0 / 0
Select вопрос
    #36437708
q1w1e1,

выполнил запрос на своей таблице. Селект честно отдал 0, как и ожидалось. Никакой ошибки не было, что я делаю не так?
...
Рейтинг: 0 / 0
Select вопрос
    #36437728
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT MAX(IIF(.T.,0,zakaz_ar.ag)) AS ag FROM zakaz_ar
...
Рейтинг: 0 / 0
Select вопрос
    #36437729
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, не совсем корректно задал вопрос, дело в том, что в таблице zakaz_ar, нет поля ag, под этим псевдонимом выступает другая таблица, с другими полями, поэтому и хотелось бы знать, если в этой таблице нет каких-то определённых полей то 0, иначе суммирование по эти полям...
...
Рейтинг: 0 / 0
Select вопрос
    #36437735
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1,

вместо "иначе суммирование по эти полям", хотел написать "иначе MAX по эти полям", правда без разницы, всё равно агрегативные функции...
...
Рейтинг: 0 / 0
Select вопрос
    #36437757
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пятница? Трудная неделя?

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
...
Рейтинг: 0 / 0
Select вопрос
    #36437766
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
LOCAL  llField
FOR i= 1  TO FCOUNT('tMyTable')
	IF LOWER(FIELD(i))=='ag' 
		llField=.T.
	EXIT 
	ENDIF 
ENDFOR 
if llField
	SELECT MAX(zakaz_ar.ag) AS ag FROM tMyTable
ENDIF 
...
Рейтинг: 0 / 0
Select вопрос
    #36437812
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я всё это понимаю... :(, и в этом коде
if llField
SELECT MAX(zakaz_ar.ag) AS ag FROM tMyTable
ENDIF
Надо поставить "ELSE" , и потом если что-то исправить, то править надо уже два SELECT(а), вероятность ошибки возрастает, хорошо если они рядом, а если разнесены ужасно много строчным кодом...да вы сами всё понимаете, поэтому и хотелось бы всю эту конструкцию иметь в одном SELECt(е), а не делать проверку на наличие поля, а затем уже от этого значения, или так или так, выполнять SELECT, поэтому и подумал воспользоваться IIF(ом)
...
Рейтинг: 0 / 0
Select вопрос
    #36437817
quxix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С вашего позволения рехтану немного ..?
и если я правильно понял топикастера :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
FOR i= 1  TO FCOUNT('MyTable')
	IF FIELD(i)=='AG' 
             SELECT MAX(ag) ag FROM <MyTable>
	ELSE
             SELECT MAX(cast( 0  as <Тип поля AG>)) ag FROM <MyTable>	
	ENDIF 
ENDFOR
...
Рейтинг: 0 / 0
Select вопрос
    #36437831
q1w1e1,

Код: plaintext
SELECT IIF(TYPE('mytable.checked_field')#'N', 0 ,MAX(mytable.checked_field)) AS checked_field FROM mytable
...
Рейтинг: 0 / 0
Select вопрос
    #36437946
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шестипалов,

поля 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
...
Рейтинг: 0 / 0
Select вопрос
    #36437948
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
констатация: шибсдец.

ну до кучи порезвитесь над функцией fsize
...
Рейтинг: 0 / 0
Select вопрос
    #36437960
q1w1e1,

если поля checked_field в таблице нет — выдаст 0, если есть — максимальное значение.

Проверял на реальной таблице.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Select вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]