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

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

Можно ли SQL-м соединить такие 2 таблицы. [D4, D5, dBase, FoxPro, Paradox]


LynxSS ©   (2002-12-11 16:39:00) 

Доброе время суток! Может кто подскажет. Есть така проблемка: Есть 2 таблицы(например): Таб.1: kod ; Name
Таб.2: kod ; par ; Value
В одной списки компьютеров. Во второй ихние характеристики. Например: par=0 - Value="111.111.111.111" - IpAdres
par=2 - Value="Duron 750" - procecor
par=3 - Value="Sony 15"" - monitor
...
Можно ли SQL кодом связять эти таблицы, чтобы значения (Value) развернуть в поля:
kod , Name , IpAdres , Procecor , Monitor , ...


sniknik   (2002-12-11 22:24:00) [1]

join TAB2c, join TAB2d - какая разница?

и так кучу хелпа сюда переписали.


Prooksius   (2002-12-11 20:15:00) [2]

2 sniknik © (11.12.02 20:04)
Ты нигде в запросе не описал, что у тебя за таблицы c и d.


sniknik   (2002-12-11 20:04:00) [3]

select a.Name, b."Value" as IPAddr, c."Value" as Processor, d."value" as monitor
from TAB1 a
left join TAB2 b on a.Kod = b.Kod
WHERE b.par IN (0, 2, 3, ...)

так не лутше будет?

или если не сработает
select a.Name, b."Value" as IPAddr, c."Value" as Processor, d."value" as monitor
from TAB1 a, TAB2 b
WHERE (a.Kod = b.Kod) AND (b.par IN (0, 2, 3, ...))


Prooksius   (2002-12-11 19:48:00) [4]

Вообще-то это хороший пример хранения в базе произвольного кол-ва параметров.
Единственное, при большом кол-ве компов и параметров запрос будет жутко тормозить.


LynxSS   (2002-12-11 19:06:00) [5]

Получилось
Разобрался!!!!!!!!!!!!!!

если кто еще столкнулся с такой проблемой пишу результат:

select a.Name, b."Value" as IPAddr, c."Value" as Processor,
d."value" as monitor
from TAB1 a
left join TAB2 b on a.Kod = b.Kod and b.par = 0
left join TAB2 c on a.Kod = c.Kod and c.par = 2
left join TAB2 d on a.Kod = d.Kod and d.par = 3


LynxSS   (2002-12-11 18:47:00) [6]

С вложенными запросами розабрался. Но SQL не понимает
ParamName. Как его по другому заставить записать именно в поля:

IPAddr в T21.Value as IPAddr
Processor в T22.Value as Processor


Prooksius   (2002-12-11 17:54:00) [7]

Можно примерно так.
select T1.Name, T21.Value IPAddr, T22.Value Processor, ... (перебрать все возможные параметры)
from
Table1 T1
left join Table2 T21 on T21.Kod = T1.Kod and T21.ParamName = "IPValue"
left join Table2 T21 on T21.Kod = T1.Kod and T21.ParamName = "Processor"
...


LynxSS   (2002-12-11 17:44:00) [8]

для "Prooksius" названия этих праметров хранятся в другой базе,
где идет связь по par. Это в принципе неважно. Главное "Мне нужен пример SQL-кода". Плиз если кто сможет набрасайте.


Prooksius   (2002-12-11 17:34:00) [9]

А где хранятся названия параметров (слова "Processor", "Monitor"...)
Количество этих параметров одинаково для всех компов?


FreeLancer   (2002-12-11 17:03:00) [10]


> Можно ли SQL кодом связять эти таблицы, чтобы значения (Value)
> развернуть в поля:
> kod , Name , IpAdres , Procecor , Monitor , ...

Можно. Вложенным запросом.


Roki   (2002-12-11 16:49:00) [11]

select tab1.kod , tab2.*
from tab1, tab2
where tab1.kod=tab2.kod


sniknik   (2002-12-11 16:48:00) [12]

посмотри join в хелпе той базы которой пользуешся (подозреваю Local SQL :-), самое оно я думаю. примеры там тоже должны быть.


Наверх

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