|
|
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
в предложении WHERE как дату задать в условие выборки? SELECT JOURN.DOCNO AS DOCNUM, JOURN.DATE AS DOCDATE, KINDS.sp252 AS KIND, OWNERAGENTS.DESCR AS OWNERAGENT, AGENTS.DESCR AS AGENT FROM 1SJOURN AS JOURN INNER JOIN sc204 AS KINDS ON KINDS.ID = sp200 LEFT JOIN sc14 AS OWNERAGENTS ON OWNERAGENTS.ID = sp286 LEFT JOIN sc14 AS AGENTS ON AGENTS.ID = sp303 WHERE JOURN.DATE BETWEEN '16.02.2006' AND '16.02.2006' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 11:57 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Если речь идёт о доступе к DBF и тип поля Date, то Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 12:02 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
СПасибо. ошибок не выдает, но выборка пустая.:( да. DATE - поле в дбф. тип - дата. без условия - выборка заполнена. значения даты за февраль. с условием WHERE JOURN.DATE BETWEEN {01.02.2006} AND {28.02.2006} выборка пустая. сам дбф смотрю дбф фьювером про ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 12:10 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Ну так уберите сначала Ваши INNER/LEFT и запустите Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 12:48 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
первое что сделал - упростил запрос до: SELECT JOURN.DATE AS DOCDATE FROM 1SJOURN AS JOURN WHERE JOURN.DATE BETWEEN {01.02.2006} AND {28.02.2006} результата не дало. прошу прощения, но я тут вообще в тупике. грешу на формат даты. к сожалению не знаю как проверить. запрос строю не в фокспе (да и вообще с фоксом незнаком) потому туплю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 13:41 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Если версия FoxPro 6 или выше, то универсальный формат даты это {^YYYY.MM.DD} В качестве разделителя можно указывать символ точки, дефис или наклонную черту. Без разницы. Обрати внимание на символ "^" сразу после фигурной скобки. В младших версиях FoxPro не использовался. Это как раз и является признаком универсального формата даты FoxPro. Если версия FoxPro младше 6, то следует предварительно сделать настройку формата даты SET DATE TO GERMAN Это соответствует настройке вида {DD.MM.YYYY} По умолчанию, в FoxPro использовался английский формат даты, т.е. {MM.DD.YYYY} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 14:00 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
2 firerer А почему дату пишешь через ".", а не через "/"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 14:00 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
ну форматы даты устанавливаются след. образом: set date american -мм/дд/гг set date ansi -гг.мм.дд set date british/french -дд/мм/гг set date german -дд.мм.гг set date italian -дд-мм-гг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 14:09 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Застрелите меня: SELECT JOURN.DATE AS DOCDATE FROM 1SJOURN AS JOURN WHERE JOURN.DATE BETWEEN {01/02/2006} AND {28/02/2006} не прошел, этот вариант тоже: SET DATE TO GERMAN SELECT JOURN.DATE AS DOCDATE FROM 1SJOURN AS JOURN WHERE JOURN.DATE BETWEEN {01.02.2006} AND {28.02.2006} знчек ^ тож не спасает 2Недоходящий. ниразу невкурсе что в фоксе разделителем в дате является / 2ВладимирМ версия ODBC - 6.1.8629.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 14:34 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Пробуем по рабоче-крестьянски через ф-ию и текущую дату. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 14:38 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 14:41 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Вдогонку: и никакие SET DATE не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 14:43 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
2PaulWist с функцией работает 2Sergey Sizov спасибо огромное. работает. но терь в поле DOCNUM кодировка непонятная. вместо "Сч" отображает "`-" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:13 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Не уверен, что ODBC такое пропустит, но начиная с 6 версии дату можно указать так: DATE(YYYY,MM,DD) Т.е. в функцию Date() передать 3 параметра: год, месяц, день Код: plaintext И кстати, разве из той программы, откуда ты запускаешь запрос нельзя отловить сообщение об ошибке? Приходит ли какая-то ошибка от ODBC-соединения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:15 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
вобщем в кодировке ОЕМ получается, а надобы в ANSI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:19 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
в том то и дело что ошибок нет - но и выборка пустая была. а вообще драйвер сообщает либо синтакс еррор, либо нет колонки ' ', либо неподдерживаемы фразы.ключевые слова - но информации все равно мало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:21 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
OEMTOANSI() ANSITOOEM() пользуйся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:27 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
например replace docnum with oemtoansi (docnum) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:33 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Ну, в общем-то, от представления даты в запросе кодовая страница результата не зависит. А CPDBF() для 1SJOURN смотрел? И что там? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:34 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
firererработает. но терь в поле DOCNUM кодировка непонятная. вместо "Сч" отображает "`-" Посмотри каким-нибудь 16-ричным редактором (Norton Commander, Disco Commander, FAR-manager и т.п.) что записано (какое значение) в 0 и 29 байте заголовка таблицы (первый байт имеет порядковый номер 0) 0 байт - это формат таблицы 29 байт - это кодовая страница 0x65 - 866 - Russian MS-DOS 0xC9 - 1251 - Russian Windows В принципе, для работы с 6 ODBC еще требуется файл foxpro.int (от слова international). Его надо класть в папку Windows\System или WinNT\System32 (в зависимости от версии Windows) . Скачать можно здесь http://msdn.microsoft.com/vfoxpro/downloads/download.asp?ID=027 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:36 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
2DIMM@ прошу прощения, в каком месте? SELECT JOURN.DOCNO AS DOCNUM, JOURN.DATE AS DOCDATE FROM 1SJOURN AS JOURN WHERE JOURN.DATE BETWEEN {^2006-02-01} AND {^2006-02-16} Работает - токо кодировка неправильная. SELECT OEMTOANSI(JOURN.DOCNO) AS DOCNUM, JOURN.DATE AS DOCDATE FROM 1SJOURN AS JOURN WHERE JOURN.DATE BETWEEN {^2006-02-01} AND {^2006-02-16} Говорит: Column 'DATE' is not found если ступил - сильно не пенайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:37 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
перед запросом поставь строку replace X with ansitooem(X) all ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:46 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
извини replace docnom with oemtoansi(docnom) all ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:48 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
2firerer: А у меня второй запрос работает :) Проверяй буковки/значки в строке команды. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 15:58 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
нулевой байт: 03 29 байт: 4С Реплэйс перед запросом на результат не влияет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:02 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
2Sergey Sizov боюсь проверять тут нечего: добавляю ОемТоАнси - не работает, убираю - работает. запрос - простейший. драйвер такой? есть еще один драйвер для работы с ДБФ - но там чето совсем както не порусски все. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:06 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
а можно ли в запросе внешнюю функцию использовать? вот вопрос. надо из поля вида "кро00000145" получить "145" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:08 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Неужели снова Column 'DATE' is not found? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:08 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
что значит "снова"? ета фигня и выскакивает токо когда я пытаюсь пристегнуть ОЕМтуАНСИ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:15 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
если ты про реплейс - то от него вообще никакого результата...что есть - что нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:18 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Черт, да что такое я выполняю эти команды и в зависимости от наличия replace получаю колонку с разной кодировкой: sele das replace nd with ansitooem(nd) all select das.nd; from das ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:25 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
сорри что ввел в заблуждение...у меня с самим дбфом чота преключилось. заменил его на нормальный - все в анси ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:34 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
и может тебе это поможет: left(x,y) - выделяет из строки X указанное в Y число символов, начиная слева right(x,y) - то же только справа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:42 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
2DIMM@ маловероятно. как мне определить какое количество символов вырезать? может быть "ооавм0012" и "фы00ф14324" надо справа числовую часть получить, тоесть 12 и 14324 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 16:51 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
А тебе обязательно нужно это делать во время запроса? Или можно сохранить это , а потом изменять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 17:05 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
2DIMM@ результат запроса у меня пользуется как поставщик данных для табличного поля на форме. никуда сохранить ни както записать данные в етот результат я уже не могу. потому и вопрос: можно ли в запросе использовать внешние функции. написанные мной для поля например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 17:07 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
да можно, только что сам попробывал select das.nd; from das; where red() func red() return .t. меняем .t. на .f. и ничего не выбирается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 17:22 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Ладно, я уже домой ухожу, работа окончена Счастливо!!! Завтра, если данные вопросы будут актуальны, подумаем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 17:26 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
эт не то. я думал что нить типа: SELECT JOURN.CLOSED AS PICT, JOURN.DATE AS DOCDATE, glDescriptionOfDocNum(JOURN.DOCNO) AS DOCNUM, но фик там - грит снова что нет колонки DATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 18:39 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Доброе утро. Ну если твой вопрос еще актуален, то можно попробывать сделать так sele das select vid(das.od); from das func vid() parame a for i=1 to len(a) if type(right(alltr(a),i))='N' _str=right(alltr(a),i) else exit endif endfor return _str ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 10:10 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
DIMM@Доброе утро. Ну если твой вопрос еще актуален, то можно попробывать сделать так sele das select vid(das.od); from das спасибо за текст функции, но с этим у меня проблем не было. проблема в вызове функции в селекте - не хочет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 11:48 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
firerer DIMM@Доброе утро. Ну если твой вопрос еще актуален, то можно попробывать сделать так sele das select vid(das.od); from das спасибо за текст функции, но с этим у меня проблем не было. проблема в вызове функции в селекте - не хочет так, а какие конкретно проблемы(что ругается?)? у меня все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 15:23 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
DIMM@ так, а какие конкретно проблемы(что ругается?)? у меня все работает. у меня чота не пойму: Select Reg.sp478 As Nomenclature, Nom.Descr As Name, Nom.sp175 As Art, Sum(Reg.sp479) As Quant From RG480 As Reg Left join sc60 As Nom On Nom.Id = Reg.sp478 Where (RG480.sp479 > 0) Group by Nomenclature даже sum не проходит. в данном случае ругается на отсутсвие колонки Descr. может существуют какието правила использования функций в запросах о которых я не знаю? просветите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 16:41 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
2 firerer: Что-то я никак не соображу откуда, как и куда ты делаешь свои запросы? Таблицы 1С где лежат - в DBF или на SQL Server? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 16:49 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Таблицы DBF ессно на SQL лежать не могут Подключаюсь через ВФП ОДБС драйвер: "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + IBDir() + ";Exclusive=No;Collate=machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO"; Дальше делаю запрос. все какбы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 16:59 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
firerer даже sum не проходит. в данном случае ругается на отсутсвие колонки Descr. может существуют какието правила использования функций в запросах о которых я не знаю? просветите Для начала уменьшите переопределение полей до 10 символов, а то в DOS времена таких длинных имен полей не было Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 17:07 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
PaulWist Для начала уменьшите переопределение полей до 10 символов, а то в DOS времена таких длинных имен полей не было Код: plaintext 1. уменьшил. как с nomenclature так и c nomen работает одинаково. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 17:18 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
прошу прощения - раскурил в условии надо было алиас указывать а не имя таблицы - вроде пошло все как надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 17:42 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
2 firerer: firererТаблицы DBF ессно на SQL лежать не могут 1. Если внимательно прочитать мой пост, то можно заметить, что там речь шла о "таблицах 1С", а не о "таблицах DBF". 2. Таблицы 1С могут лежать и на SQL Server. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2006, 19:18 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Sergey Sizov. 1. Если внимательно прочитать мой пост, то можно заметить, что там речь шла о "таблицах 1С", а не о "таблицах DBF". запятую забыл поставить: "Таблицы DBF, ессно на SQL лежать не могут." :) сорри просто в постах выше уже писал что: а) пользую драйвер VFP (ИМХО не умеет он с сиквелом работать) б) пост номер 3: "DATE - поле в дбф. тип - дата", "сам дбф смотрю дбф фьювером про" Sergey Sizov. 2. Таблицы 1С могут лежать и на SQL Server. проэто конечноже в курсе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 10:28 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Доброе утро. Ну что, всё получилось? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 10:41 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
DIMM@Доброе утро. Ну что, всё получилось? :) спасибо: все получилось, но возникают новые вопросы :) Select Reg.sp478 As Nomen, Reg.Period As Period, SUM(Reg.sp479 - RegOst.sp101) As Necessary From RG480 As Reg Left join RG98 As RegOst On RegOst.sp99 = Reg.sp478 Left join sc60 As Nom On Nom.Id = Reg.sp478 Where (Reg.sp479 - RegOst.sp101 > 0) AND Reg.Period = {^2006-02-01} AND RegOst.Period = {^2006-02-01} Group by Nomen При попытке вставить в условие вместо (Reg.sp479 - RegOst.sp101 > 0) функцию SUM(Reg.sp479 - RegOst.sp101) > 0 ругается на отсутсвие файла sum.prg (я так понимаю файл с описанием самой функции?) Есть ли возможность указать так: Where (Necessary >0) ? и если да - то как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 11:14 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
C функ. SUM у тебя все нормально(читай на нее help). Мне кажется ты неккоректно ставиш условия выбора. Это условие(с Sum) не зависит от того где находится указатель записи при выборке, оно как бы общее. Загоняй лучше свой Select под If,его условием и будет проверка больше ли сумма нуля, и если да то Select. А в селекте выкидывай это условие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2006, 13:00 |
|
||
|
Драйвер ODBC VFP возвращает: Operator/operand type mismatch
|
|||
|---|---|---|---|
|
#18+
Hi firerer! 1) Такой БУКВАЛЬНО запрос является некорректным - в выражении группировки должны быть указаны ВСЕ поля, которые не находятся внутри агрегирующих функций (т.е. внутри SUM в твоём случае), или эти поля должны в списке отбора быть помещены внутрь агрегирующих функций (например MIN или MAX, т.к. в фоксе нету LAST/FIRST или других более сложных аналитических функций) 2) Агрегирующая функция не может применяться в WHERE части - ибо если говорить грубо, то WHERE работает ещё ДО выполнения запроса (фильтрует исходные таблицы) - и соответственно она никак не может видеть "результат" агрегирования. Зато такой результат виден в HAVING части - она кстати для того и существует - это фильтр для "результата", а не для "исходных данных". При этом можно как повторить условие из списка полей, так и просто обратится по имени нового - "вычисленного" поля. Из ещё других интересных возможностей - в HAVING можно использовать такие выражения, которых нету в списке полей - например в запросе вычислять только SUM(поле), а в HAVING проверять MAX(поле). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 01:31 |
|
||
|
|

start [/forum/topic.php?all=1&fid=41&tid=1592269]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 359ms |

| 0 / 0 |
