Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2011, 14:37   #1
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию Вывод одна строка

Как в запросе сделать чтоб выводилась только первая строка запроса???
Cpluser вне форума Ответить с цитированием
Старый 20.09.2011, 15:32   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

SELECT TOP 1 * FROM ...
желательно иметь ORDER BY

не всех СУБД
для MySQL: SELECT * FROM ... LIMIT 1

есть еще SELECT FIRST 1 * ... - не помню для каких СУБД
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 20.09.2011 в 15:42.
Аватар вне форума Ответить с цитированием
Старый 20.09.2011, 15:50   #3
pproger
C++ hater
Старожил
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Аватар
Цитата:
есть еще SELECT FIRST 1 * ... - не помню для каких СУБД
SELECT *
FETCH FIRST [LAST] 10 [or another number] ROWS ONLY - оракл, дб2
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 05.10.2011, 14:55   #4
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

В oracle можно так:
Код:
select * from table
where ROWNUM = 1
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 05.10.2011, 16:28   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от pproger
SELECT *
FETCH FIRST [LAST] 10 [or another number] ROWS ONLY - оракл, дб2
неправда Ваша, дяденька!
нет такого в Oracle!

согласно wiki это есть в таких СУБД:
Цитата:
Сообщение от wiki
FETCH FIRST clause
Since ISO SQL:2008 results limits can be specified as in the following example using the FETCH FIRST clause.

SELECT * FROM T FETCH FIRST 10 ROWS ONLY

This clause currently is supported by IBM DB2, Sybase SQL Anywhere, PostgreSQL, EffiProz and HSQLDB version 2.0.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.10.2011, 12:48   #6
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Хочу сделать через min and max.
min diff_aviakomp_count_for_client
max dlitelnost_vsekh_poletov

Вот мой запрос
Код:
SELECT pk_client ,
fio ,
nomer_pasport , 
( SELECT COUNT(DISTINCT a.pk_aviakompania) 
FROM bilet b
JOIN reis r ON b.fk_reis = r.pk_reis
JOIN samolet s ON r.fk_samolet =s.pk_samolet
JOIN aviakompania a ON s.fk_aviakompania = a.pk_aviakompania
WHERE b.fk_client = pk_client
) AS diff_aviakomp_count_for_client,
( SELECT  SUM(DATEDIFF(minute, r.date_otprav, r.date_pributie))
FROM bilet b
JOIN reis r ON b.fk_reis = r.pk_reis
WHERE b.fk_client = pk_client
) AS dlitelnost_vsekh_poletov
FROM client 
WHERE ( SELECT COUNT(DISTINCT a.pk_aviakompania)
FROM bilet b
JOIN reis r ON b.fk_reis = r.pk_reis
JOIN samolet s ON r.fk_samolet =s.pk_samolet
JOIN aviakompania a ON s.fk_aviakompania = a.pk_aviakompania
WHERE b.fk_client = pk_client
)<>0
order by diff_aviakomp_count_for_client, dlitelnost_vsekh_poletov
Cpluser вне форума Ответить с цитированием
Старый 06.10.2011, 14:00   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Так не пробовали:
Код:
SELECT MAX(U1.dlitelnost_vsekh_poletov),MIN(U1.diff_aviakomp_count_for_client)
  FROM (
--здесь ваш запрос
) AS U1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.10.2011, 15:12   #8
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Да оно ток например как вывести еще fio?
Cpluser вне форума Ответить с цитированием
Старый 06.10.2011, 15:49   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А чей fio? MAX и MIN вычислятся для группы записей, не обязательно они к одному клиенту имеют отношение. Вы бы нормально описали что нужно получить и из каких таблиц. СУБД какая?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.10.2011, 15:58   #10
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

ms sql
ну просто оно выводит количество полетов и время проведенные в полете но нужно чтоб было еще fio клиента который min and max или их может быть пару.
Cpluser вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками. Не пойму как определить сколько раз одна строка встречается в другой dykatob Общие вопросы C/C++ 10 29.04.2011 22:46
Строка(Условие, код, вывод) GreX454 Общие вопросы C/C++ 1 06.04.2010 08:38
Строка состаяния или загрузачная строка Sergeu Мультимедиа в Delphi 8 27.08.2008 10:32
Входная строка, сортировка, вывод... Scudetto Общие вопросы C/C++ 2 18.11.2007 23:05