![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL [D5, Oracle]
Старик © (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.