Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];

Вниз

Можно ли SQL-м соединить такие 2 таблицы.   Найти похожие ветки 

 
LynxSS   (2002-12-11 16:39) [0]

Доброе время суток! Может кто подскажет. Есть така проблемка: Есть 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 16:48) [1]

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


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

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


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


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

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


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

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


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

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


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

Можно примерно так.
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 18:47) [7]

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

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


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

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

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

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


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

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


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

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 20:15) [11]

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


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

join TAB2 c, join TAB2 d - какая разница?

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
1-1787
smok_er
2002-12-20 12:27
2003.01.02
ReadLn и перемещение к началу файла


1-1777
Переяслов Григорий
2002-12-20 10:54
2003.01.02
Обработка клавиш на форме


14-1886
Kotka
2002-12-13 19:19
2003.01.02
Две проги с одинаковыми названиями


1-1773
roman_tutov
2002-12-20 09:59
2003.01.02
Курс доллара с РБС


14-1916
F1
2002-12-15 13:27
2003.01.02
Точка в полигоне!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский