задачка

KPAH
Дата: 13.09.2006 14:57:18
помогите с синтаксисом или направьте в нужном направлении.

есть 2 таблицы внутри одной базы.

первая таблица содержит наименование товара (naim) и его внутрикорпоративные названия (naim1, naim2). вторая таблица содержит только naim и еще 3 поля, специфичные для этого товара, как то кол-во (qty), дата изготовления (date), производитель (mfg).

необходимо сделать query, которая бы извлекала данные в след. виде:


naim | mfg | date | qty
naim1 | mfg | date | qty
naim2 | mfg | date | qty

другими словами, naim1 и naim2 это одно и то же c naim. но только naim находится в одной строке с mfg, date, qty. фактически нужно эти поля, характерные для naim копировать в строки c naim1, naim2.

naim, naim1, naim2 находятся в первой таблице. во второй таблице есть значение naim, названное naimZ. т.е. тут можно проверять по WHERE naim=naimZ. как быть с копированием остальных данных в новую строку?

еще раз попытаюсь оформить словесно: нужно, имея naim как связующее и присутствующее в обеих таблицах значение, присвоить его аналогам его значения из второй таблицы.

спашивайте наводящие вопросы.
pavel73
Дата: 13.09.2006 15:02:41
select naim,mfg,date,qty from tb1 inner join tb2 on tb1.naim = tb2.znaim
union all
select naim1,mfg,date,qty from tb1 inner join tb2 on tb1.naim = tb2.znaim
union all
select naim2,mfg,date,qty from tb1 inner join tb2 on tb1.naim = tb2.znaim
tedy
Дата: 13.09.2006 15:02:55
select t1.naim, t2.mfg, t2.date, t2.qty
from t1 join t2 on t1.naim = t2.naim
union all 
select t1.naim1, t2.mfg, t2.date, t2.qty
from t1 join t2 on t1.naim = t2.naim
union all
select t1.naim2, t2.mfg, t2.date, t2.qty
from t1 join t2 on t1.naim = t2.naim

?
KPAH
Дата: 13.09.2006 15:05:31
ребята, спасибо за бытсрые ответы. сейчас прогоню оба варианта..
alexeyvg
Дата: 13.09.2006 15:06:40
KPAH
ребята, спасибо за бытсрые ответы. сейчас прогоню оба варианта..
Вы увидели 2 варианта? :-)
KPAH
Дата: 13.09.2006 15:37:01
ребят, отлично все работает. маленькое дополнение. нужно делать проверку на qty>0 и на присутствие записи в naim1, naim2. т.е. если в naim1 или naim2 ничего не записано, то не добавлять эту строку совсем. то же и по количеству.
pavel73
Дата: 13.09.2006 15:39:47
использовать для 1 желания where для 2 case
KPAH
Дата: 13.09.2006 15:44:36
Павел, не напишите целиком? обратиться не к кому... :(
pavel73
Дата: 13.09.2006 15:50:18
where qty > 0 and (1 = case when naim='' then  0 else 1 end)
и в каждой из 3 строк запроса
pavel73
Дата: 13.09.2006 15:51:41
pavel73
where qty > 0 and (1 = case when naim='' then  0 else 1 end)
и в каждой из 3 строк запроса


1 = case when naim1='' then 0 else 1 end