Главная страница
    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.45 MB
Время: 0.006 c
3-47981
mikmaslov
2002-07-26 15:25
2002.08.15
DSN ?


1-48133
Чайник2
2002-08-01 07:15
2002.08.15
CD-ROM


6-48238
KPV-10k
2002-05-24 21:18
2002.08.15
Опять про TServerSocket и TClientSocket...


14-48268
Виктор
2002-07-14 10:48
2002.08.15
Печать на GDI-принтере


1-48204
KIR
2002-07-30 10:27
2002.08.15
Добавление листа в книгу Excel я





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский