|
|
|
Удаление пустых записей из запроса
|
|||
|---|---|---|---|
|
#18+
Есть SELECT из числовых полей таблицы. Если таблица пустая, то в курсор всё равно попадает одна запись со значениями полей .NULL. Как от этого избавиться? Если добавить в SELECT выбор ещё и из символьного поля, тогда создаётся нормальный курсор с 0 записями. Но этот вариант мне не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 11:23 |
|
||
|
Удаление пустых записей из запроса
|
|||
|---|---|---|---|
|
#18+
Если таблица пустая, то SELECT НИЧЕГО не вернет! Разберитесь с таблицей - источником для запроса. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 11:36 |
|
||
|
Удаление пустых записей из запроса
|
|||
|---|---|---|---|
|
#18+
Aleksey-KЕсли таблица пустая, то SELECT НИЧЕГО не вернет! Разберитесь с таблицей - источником для запроса. С уважением, Алексей В SELECTе некоторые поля суммируются. Источник запроса - таблица пустая, это точно! Но если селект без символьного поля он выдаёт таблицу с одной записью. BROWSE показывает значение .NULL. во всех полях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 14:21 |
|
||
|
Удаление пустых записей из запроса
|
|||
|---|---|---|---|
|
#18+
SELECT не учитывает SET DELETE.., а BROWSE учитывает. Как у вас с этим флагом? С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 14:31 |
|
||
|
Удаление пустых записей из запроса
|
|||
|---|---|---|---|
|
#18+
"Пустая" таблица - это значит ?Reccount("MyTable") = 0 Если количество записей больше нуля, то даблица НЕ пустая вне зависимости от того, видите ли Вы какие-либо записи через BROWSE или нет. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 15:07 |
|
||
|
Удаление пустых записей из запроса
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. Неееее, не так! я не правильно сказал, там все поля суммируются Вот как надо: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 15:37 |
|
||
|
Удаление пустых записей из запроса
|
|||
|---|---|---|---|
|
#18+
Начиная с VFP9 синтаксис Select-SQL более приближен к стандарту ANSI. Если используются аггрегирующие функции БЕЗ группировки (нет GROUP BY), то в результирующей выборке ВСЕГДА будет одна запись. Вне зависимости от факта наличия данных. Это необходимо, чтобы отличать нулевую сумму от не существующей суммы. "Избавляться" от этого не надо. Это стандартное поведение. В принципе, обойти, конечно, можно. Например, так Код: plaintext 1. 2. Но лучше привыкать к стандартному поведению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 14:16 |
|
||
|
Удаление пустых записей из запроса
|
|||
|---|---|---|---|
|
#18+
Буду знать. Спасибо! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 14:36 |
|
||
|
Удаление пустых записей из запроса
|
|||
|---|---|---|---|
|
#18+
Позволю еще себе дополнить ответ ВладимирМ. 1. И при этом в ваших полях с агрегатными функциями, если нет строк (кроме COUNT(*)) вернутся значения .NULL., а COUNT(*) вернет 0. 2. Неплохо бы было присвоить имена колонкам с агрегатными функциями, иначе VFP сам имена присвоит. select sum(iif(f1<>0,1,0)) as Flag, sum(f1) AS F1, sum(f2) AS F2 from test С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 15:35 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33679448&tid=1591857]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
145ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 427ms |

| 0 / 0 |
