![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос 2 таблицам [D6, dBase, FoxPro]
Алексей © (2004-09-01 11:27:00)Дано: 2 таблицы
create table tabl1(id_1 numeric(6,0),kolvo numeric(6,0))
create table tabl2(id_2 numeric(6,0),kolvo numeric(6,0))
Данные:
tabl1 tabl2
10 5 11 2
11 5 13 1
12 5
13 5
Пишу запрос:
select a.id_1,a.kolvo+b.kolvo from tabl1 a,tabl2 b where a.id_1=b.id_2
Расчитываю получить:
10 5
11 7
12 5
13 6
а получаю:
11 7
13 6
Как мне получить требуемое?
Алексе (2004-09-01 12:34:00) [1]УРА!
Заработало!!!
Ограмное спасибо.
P.S. Но пока не понял КАК работать :-)
Роман Снегирев (2004-09-01 12:23:00) [2]ну тады (если это DBASE) надо использоывать BDE, правда тогда у тебя ничего не получиться
sniknik (2004-09-01 12:23:00) [3]ну ладно, в принципе ясно (раз фокс то скорее всего одбсишный драйвер его юзается)
небольшая замена, должно работать
select a.id_1, a.kolvo+ iif(isNull(b.kolvo), 0, b.kolvo) from tabl1 a left join tabl2 b on a.id_1=b.id_2
sniknik (2004-09-01 12:16:00) [4]> движок ADO....
ADO это не движок, надстройка, движок это то что он использует (к чему конект)
Алексе (2004-09-01 12:14:00) [5]Таблицы Fox`а, движок ADO....
Роман Снегирев (2004-09-01 12:14:00) [6]firebird 1.5 конечно
sniknik (2004-09-01 12:12:00) [7]> coalesce тебя спасет
> А это что за зверь?????
> Я про такое даже и не слышал :-)
> Просвети, плиз....
а это то чего ни у тебя ни меня нет.
неужели неясно? проще тебе используемый движок назвать чем все варианты перебирать.
Роман Снегирев (2004-09-01 12:11:00) [8]А это что за зверь?????
Я про такое даже и не слышал :-)
Просвети, плиз....
это функция такая которая если грубо заменяет значения null на заданные тобой значения
sniknik (2004-09-01 12:09:00) [9]> После замены iff(b.kolvo is null,0,b.kolvo)
> наiff(empty(b.kolvo),0,b.kolvo)
у меня написано
iif(b.kolvo is Null, 0, b.kolvo)
а у тебя если потребовались замены не то что у меня. (?) намек понят? нет?
> (если то что используеш это позволяет ;о))
Алексе (2004-09-01 12:07:00) [10]А это что за зверь?????
Я про такое даже и не слышал :-)
Просвети, плиз....
Роман Снегирев (2004-09-01 12:03:00) [11]coalesce тебя спасет
Алексе (2004-09-01 11:58:00) [12]После замены
iff(b.kolvo is null,0,b.kolvo)
наiff(empty(b.kolvo),0,b.kolvo)
получил в результате
10 null
11 7
12 null
13 6
sniknik (2004-09-01 11:46:00) [13]select a.id_1, a.kolvo+ iif(b.kolvo is Null, 0, b.kolvo) from tabl1 a left join tabl2 b on a.id_1=b.id_2
получиш то на что расчитываеш. (если то что используеш это позволяет ;о))
Алексе (2004-09-01 11:42:00) [14]join использовать?
А по другому никак?
Роман Снегирев (2004-09-01 11:34:00) [15]хреново ты расчитываешь,where a.id_1=b.id_2 есть внутреннее объединение, почитай хелп по SQL