Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрос 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо