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

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

SQL [D5, Oracle]


Страницы:   1 2

Старик ©   (2002-09-23 16:36:00) 

Есть таблица из двух полей: Nom и Cvet;
Nom -числа.
Cvet принимает только три разных значения - red,green,blue.
Как получить таблицу вида
Nom Cv1 Cv2 cv3
13 red
26 green
22 red
54 blue
Благодарю за соучастие.


passm   (2002-09-25 11:54:00) [1]

Старик (25.09.02 11:46)> Посмотри литературу по SQL. Дело в том, что T1,T2,T3 в запросе не отдельные таблицы (создавать их не нужно), а алиасы таблицы TABLE. Таблица соединяется сама с собой. Вобщем все данные запрашиваются исключительно из TABLE1.


Старик   (2002-09-25 11:46:00) [2]

>passm
БЛАГОДАРЮ.Поехало.
Только вопросик: Я дополн. создал три таблицы T1,T2,T3 c этими полями(NOM,CVET). Или это может делать сам SQL?


passm   (2002-09-25 11:31:00) [3]

Старик (25.09.02 11:22)> Разумеется ошибка. Я же привел тебе схему запроса. Замени TABLE на реальную таблицу.


Старик   (2002-09-25 11:22:00) [4]

>passm
Ошибка в синтаксисе:Invalid use keyword - Table.
У меня PARADOX. Вчера каялся.
А где можно полюбопытствовать о локальном SQL?


passm   (2002-09-25 09:12:00) [5]

А если так:
SELECT Q1.NOM, T1.CVET, T2.CVET, T3.CVET
FROM TABLE AS Q1
LEFT OUTER JOIN TABLE AS T1 ON (T1.NOM = Q1.NOM AND T1.CVET = "red")
LEFT OUTER JOIN TABLE AS T2 ON (T2.NOM = Q1.NOM AND T2.CVET = "green")
LEFT OUTER JOIN TABLE AS T3 ON (T3.NUM = Q1.NUM AND T3.CVET = "blue")


Старик   (2002-09-24 16:38:00) [6]

>Roottim
Опять
Type mismatch in expression
>Atamali Mamedov
Неправильный синтаксис.
> To ALL.
На сегодня хватит.
Спасибо ВСЕМ.


Atamali Mamedov   (2002-09-24 16:20:00) [7]

SELECT nom,max(red) red,max(green) green,max(blue) blue from
select nom,cvet red "нету" green ,"нету" blue from table where cvet="red"
union all
select nom,"нету",cvet,"нету" from table where cvet="green"
union all
select nom,"нету","нету",cvet from table where cvet="blue"
group by nom order by nom


roottim   (2002-09-24 16:04:00) [8]

select nom,cvet,"нету","нету" from table where cvet="red"
union all
select nom,"нету",cvet,"нету" from table where cvet="green"
union all
select nom,"нету","нету",cvet from table where cvet="blue"

а так непробовал ?


Старик   (2002-09-24 15:11:00) [9]

>Roottim
Type mismatch in expression.


roottim   (2002-09-24 14:56:00) [10]

если порядок не играет никакого значения.. можно попробовать так
select nom,cvet,"","" from table where cvet="red"
union all
select nom,"",cvet,"" from table where cvet="green"
union all
select nom,"","",cvet from table where cvet="blue"


Старик   (2002-09-24 14:45:00) [11]

Граждане хорошие!
Простите старику за Oracle.У меня Paradox!!!Не ту кнопку жал!


Johnmen   (2002-09-24 14:29:00) [12]

Может быть, действительно, не Оракул ? :))))))


roottim   (2002-09-24 14:12:00) [13]

чет и правда со зрением :)
select Nom,
decode(cvet,"red","red",null) as cv1,
decode(cvet,"green","green",null) as cv2,
decode(cvet,"blue","blue",null) as cv3,
from table
order by Nom


версию оракле!,.. и откуда выполнятся сей запрос?


Старик   (2002-09-24 13:54:00) [14]

>Johnmen ©
>"старик видимо совсем стар чтобы" указать вместо Null - ""
Как быстро рисуются ответы,но...
Capability not supported.


Johnmen   (2002-09-24 13:41:00) [15]

"старик видимо совсем стар чтобы" указать вместо Null - ""


Старик   (2002-09-24 13:29:00) [16]

>Roottim
См. >Atamali Mamedov
P.S. Старик, естественно, стар, а то смог бы написать такой простенький запрос


roottim   (2002-09-24 13:12:00) [17]

народ.. вы бы посмотрели на тип базы... это не IB
а старик видимо совсем стар чтобы перевести скл в оракловый вид
select Nom,
decode(cvet,"red","red",null) as cv1
decode(cvet,"green","green",null) as cv2
decode(cvet,"blue","blue",null) as cv3
from table
order by Nom


Старик   (2002-09-24 12:45:00) [18]

>Atamali Mamedov
Oшибка: Invalid use in keyword
Token Null)
>Black Cat
I"m understand.


Atamali Mamedov   (2002-09-24 12:34:00) [19]

select Nom,
decode (Cvet , "red","red",null) Cv1,
decode (Cvet , "green" ,"green",null) Cv2,
decode (Cvet , "blue" ,"blue",null) Cv3
from table
group by nom
order by Nom


Black Cat   (2002-09-24 12:05:00) [20]

См. хелп по ссылке "calculated fields"

OnCalcFields is called when

A dataset is opened.
The dataset enters edit mode.
A record is retrieved from the database.
Focus moves from one visual component to another, or from one column to another in a data-aware grid control and the current record has been modified.


Страницы:   1 2

Наверх

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