Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.15;
Скачать: CL | DM;

Вниз

Запрос на Max значения   Найти похожие ветки 

 
Explorer ©   (2002-07-25 10:11) [0]

Мастера!
Вот запрос:
select max(t.id_registerroub)as roub, max(t1.id_registercur)as cur,
max(t2.id_registercurroub)as curroub
from registerroub t, registercur t1, registercurroub t2

Результат: null null null
Хотя значения там есть. Если делаю запрос на выборку max в одной таблице - все нормально.

Могу ли я, в одном запросе делать такую выборку на max в неск. таб. ?


 
IlyaA   (2002-07-25 10:18) [1]

Нет. Так ты ни чего не получишь. Т.к. при такой выботке у тебя получится лажа.
Попробуй Union -

Select Max(Field1) as Max From Table1
Union
Select Max(Field2) as Max From Table2
Union
Select Max(Field3) as Max From Table3


Тогда получишь таблицу с одним филдом и тремя записями


 
Explorer ©   (2002-07-25 10:29) [2]

>IlyaA
Ты меня не понял!
Мне, как раз, нужны разные филды, чтобы работать с ними потом по одиночке.

Еще что я заметил, он выдает NULL, только в том случае, когда по одному из запрашиваемых полей в таб. записей нет!
Почему так?


 
AlexSam   (2002-07-25 10:49) [3]

Я не поленился и написал аналогичный запрос. Все работает.
Другое дело, если таблицы большие, то SQL перебирает все комбинации = count1*count2*count3 !!! Напиши 3 отдельных запроса и не тр..я. Или ХР с возвращаемыми параметрами.

CREATE PROCEDURE max_
(@max_1 int OUTPUT,@max_2 int OUTPUT,@max_3 int OUTPUT)
AS
SELECT @max_1=(SELECT max(a1) FROM t1)
SELECT @max_2=(SELECT max(b1) FROM t2)
SELECT @max_3=(SELECT max(c1) FROM t3)


 
bahrov   (2002-07-25 11:43) [4]

у тебя идет перемножение 3х таблиц и если одна таблица пустая
то ты полюбому получишь пусто! X*Y*0=0
если ты без MAX-ов выполнишь запрос то получишь пусто а какие максы из пусто
Чтобы было хорошо на Oracle было бы так
select m1,m2,m3 from
(select max(field1) m1 from table1),
(select max(field2) m2 from table2),
(select max(field3) m3 from table3)
можно ли на mssql так делать незнаю




 
DmitryK ©   (2002-07-25 12:31) [5]

2bahrov

можно, только надо чуток поправить:

select A.m1, B.m2, C.m3 from
(select max(field1) m1 from table1) A,
(select max(field2) m2 from table2) B,
(select max(field3) m3 from table3) C


 
Explorer ©   (2002-07-25 12:35) [6]

Всем, большое спасибо!


 
bahrov   (2002-07-25 12:37) [7]

DmitryK ©

на 8i совершенно не обязательно



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

Текущий архив: 2002.08.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
3-47980
sdram
2002-07-26 15:34
2002.08.15
урезаются значения полей в DBGrid


1-48185
nester
2002-08-01 23:00
2002.08.15
Как быстро сравнить изображение на двух битмапах?


14-48257
Владик_1
2002-07-19 10:38
2002.08.15
расширение sit. Чем???


1-48049
dera
2002-08-04 09:06
2002.08.15
Как можно узнать раскладку клавы?


1-48169
Belov
2002-08-02 13:22
2002.08.15
Как получить пусть к папке Start - Programs