21.06.2006, 16:52 | #1 |
Участник
|
Помогите, плиз, как всегда, мудрым советом!
Проблема: в одной табличке есть FlowField, на которое прописан Lookup Lookup(Table1.Filed1 WHERE (Field2=FIELD(Filed3))) //понятно, что поля Field1, Field2 принадлежат Table1, Field3 - другой... Проблема в том, что это метод, по сути, получения inner join'a, а мне тут нужен left outer join, т.е. если Field3 = '' (пустое), то нужно, чтобы в FlowField тоже было пусто, а если не пусто - то вытаскивать по связке значения из Table1...... Спасибо заранее! |
|
21.06.2006, 18:05 | #2 |
Участник
|
Если задать такой tablefilter:
Field2=FIELD(Field3),Field2=FILTER(<>'') ? |
|
22.06.2006, 10:29 | #3 |
Участник
|
Не получилось так. Еще хуже стало - для каждого значения Field3 (даже пустого) стал подставлять одно и то же значение Field2 (неправильное)
|
|
22.06.2006, 11:35 | #4 |
Участник
|
Порядок строчек фильтра играет важную роль.
Нужно поменять местами фильтры: Lookup(table2.field1 WHERE (field2=FILTER(<>''),field2=FIELD(field3))) У меня так работает Т.е. смысл фильтра: он отбирает сначала записи с непустым значением поля field2 , а потом из них отбирает запись, в которой field2 = field3 |
|
22.06.2006, 18:41 | #5 |
Участник
|
Цитата:
К сожалению, ваша логика не работает. Я попробовал, покрутил - у меня выходит, что срабатывает только последнее условие: если FIELD(Field3),Field2=FILTER(<>''), то показывает первую попавшуюся, где <>''; если field2=FILTER(<>''),field2=FIELD(field3), то ту, где значения совпадают. Не дополняют друг друга условия каскадно, наложенные на одно поле. И полагаю я, что FlowField - это только простой inner join. |
|