Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];

Вниз

Вопрос новичка. Тема про SQL.   Найти похожие ветки 

 
Anton   (2008-10-08 16:34) [0]

Есть таблица. Нужно вывести ее в виде странички. Выводить нужно по алвафиту и по частям:1-5, 6-10, 11-15 и т. д.

Теперь вопрос: как, например начать выборку с 1 по 5 позицию, т.е. чем ограничить размер на количество результатирующих записей.

И вопрос второй: как, например начать выборку с 6 и по 10 позицию если  в отсортированом виде записи могут быть в таком виде:  7, 8, 21, 23, 24.


 
KSergey ©   (2008-10-08 16:37) [1]

Для рзных серверов производителями рекомендуются различные подходы.
Например измудрение с SELECT ... TOP для MS SQL.

Материала - море.

http://www.google.ru/search?hl=ru&q=%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%BD%D0%B0%D1%8F+%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0+SQL&lr=&aq=f&oq=


 
Правильный$Вася   (2008-10-08 16:37) [2]


> в отсортированом виде записи могут быть в таком виде:  7, 8, 21, 23, 24.

что это за числа? идентификаторы или номера записей?

в общем виде нерешаемо средствами чистого SQL
в частностях - зависит от субд


 
Сергей М. ©   (2008-10-08 16:39) [3]


> Нужно вывести ее в виде странички


Куда вывести-то ? На папирус ?)


 
Anton   (2008-10-08 16:42) [4]


> Сергей М. ©   (08.10.08 16:39) [3]
>
>
> > Нужно вывести ее в виде странички
>
>
> Куда вывести-то ? На папирус ?)


нет! прямо на принтер и в .bmp формате


 
Anton   (2008-10-08 16:45) [5]


> Правильный$Вася   (08.10.08 16:37) [2]
>
>
> > в отсортированом виде записи могут быть в таком виде:
>  7, 8, 21, 23, 24.
>
> что это за числа? идентификаторы или номера записей?
>
> в общем виде нерешаемо средствами чистого SQL
> в частностях - зависит от субд
>


>  7, 8, 21, 23, 24. номера записей т.е. последовательности записей нет


 
Сергей М. ©   (2008-10-08 16:45) [6]

О как)

А принтер разве не на папирусе рисует ?)


 
Anton   (2008-10-08 16:50) [7]


> Сергей М. ©   (08.10.08 16:45) [6]
>
> О как)
>
> А принтер разве не на папирусе рисует ?)
>


а вышивать он не умеет ?)


 
clickmaker ©   (2008-10-08 16:52) [8]

> а вышивать он не умеет ?)

только крестиком


 
Ega23 ©   (2008-10-08 16:55) [9]


> нет! прямо на принтер и в .bmp формате


фигасе у тебя запросы!
Да кто-ж тебе доверит-то сразу на принтер да ещё и в bmp?

Научись сначала выводить в текстовом виде на монитор и срисовывать оттуда. Это где-то год самосовершенствования. Потом научись выводить её на монитор в виде bmp (ещё год). И вот когда ты это будешь уметь делать в совершенстве - вот только тогда тебе позволят приблизиться к принтеру.

З.Ы. Каков вопрос - такие и ответы. Без обид.


 
Anton   (2008-10-08 17:01) [10]


> Ega23 ©   (08.10.08 16:55) [9]
>
> З.Ы. Каков вопрос - такие и ответы. Без обид.


Наоборот, чувство юмора приветствую!
А сначала поиздиваться над новеньким и его вопросами воспринимаю как положено)


 
Сергей М. ©   (2008-10-08 17:05) [11]


> Anton   (08.10.08 17:01) [10]


Все идет к тому, что в ряде случаев проще и надежней получить весь НД, а требуемые для визуализации рез-ты формировать средствами генератора отчетов.


 
Bless ©   (2008-10-08 17:08) [12]

Если у тебя MSSQL 2005, то полезной к прочтению будет
http://www.rsdn.ru/article/db/WindowFunctions.xml

Так, в частности, есть пример того, что тебе нужно (если мой телепатор не сбоит и я правильно понимаю, что же тебе нужно), а именно выборки записей таблицы с такой-то по такую-то:

WITH Numbered
(
 SELECT ROW_NUMBER() OVER(ORDER BY name) N_Row, *
   FROM sysobjects
)
SELECT * FROM Numbered WHERE N_Row between @First AND @Last


 
Anton   (2008-10-08 17:18) [13]


> Bless ©   (08.10.08 17:08) [12]
>
> Если у тебя MSSQL 2005, то полезной к прочтению будет
> http://www.rsdn.ru/article/db/WindowFunctions.xml
>
> Так, в частности, есть пример того, что тебе нужно (если
> мой телепатор не сбоит и я правильно понимаю, что же тебе
> нужно), а именно выборки записей таблицы с такой-то по такую-
> то:
>
> WITH Numbered
> (
>  SELECT ROW_NUMBER() OVER(ORDER BY name) N_Row, *
>    FROM sysobjects
> )
> SELECT * FROM Numbered WHERE N_Row between @First AND @Last
>


вроде бы начинаю доганять.

теперь еще вопрос: а как узнать о количестве страниц при выборке. Если например в таблице 1057 из них мы получен только 105 по условию. Где прочитать значение 105


 
Ega23 ©   (2008-10-08 17:23) [14]


> А сначала поиздиваться над новеньким и его вопросами воспринимаю
> как положено)


Нет, это не положено. Просто тебе было надо:
1. Указать ту СУБД, на которой ты сие действо собираешься делать. Для MSSQL это будет один приём, для MySQL - другой, для Postgres - третий.
2. Указать в каком виде и куда должна выводиться информация.

Из твоего вопроса это непонятно.


 
clickmaker ©   (2008-10-08 17:25) [15]

> как узнать о количестве страниц при выборке

это уже элементарная арифметика, не находишь?


 
Правильный$Вася   (2008-10-08 17:37) [16]


> Просто тебе было надо:

автор читает только то, что считает нужным
и отвечает только нато, что знает
удосужиться выяснить то, что спрашивают, и читать то, что пишут, - это надо в первую очередь

> поиздиваться над новеньким

показательная порка
если не выбьет дурь, то хоть отсюда сплавит
в любом случае польза


 
Anton   (2008-10-08 17:47) [17]


> Ega23 ©   (08.10.08 17:23) [14]

из стандартной поставки Delphi 7 InterBase 6.5 Server. дальше планируется использовать все то же.

таблица каталог книг. главные поля имя автора, название книги, раздел. выводить нужно или по имени или по названию или по разделу (отсортировано в алф. порядке) и по частям 1-5, 6-10, 11-15 и т.д.

засада: например, как получить 6-10 запись с поля РАЗДЕЛ. вижу только решение получить все записи, отсортировать, потом выбрать с них.


 
Vlad Oshin ©   (2008-10-08 17:51) [18]

ты бы код показал


 
Anton   (2008-10-08 18:09) [19]


> Vlad Oshin ©   (08.10.08 17:51) [18]
>
> ты бы код показал
>


два дня назад только ВПЕРВЫЕ набрал create table, поэтому кода еще нет, ПЫТАЮСЬ ПОНЯТЬ какой он должен быть)

P.S. пошел разбираться в теории. код ОБЯЗАТЕЛЬНО выложу позже.


 
Anatoly Podgoretsky ©   (2008-10-08 18:29) [20]

> Ega23  (08.10.2008 16:55:09)  [9]

Посмотреть на него.


 
Anatoly Podgoretsky ©   (2008-10-08 18:29) [21]

> Anton  (08.10.2008 17:01:10)  [10]

Не знаю тот ли ты Антон, уж больно много вас.


 
Германн ©   (2008-10-08 18:48) [22]


> уж больно много вас.

Как в Бразилии Педров :)


 
ppk   (2008-10-09 09:10) [23]

в word можно вывести


 
Johnmen ©   (2008-10-09 09:20) [24]

в фотошоп можно вывести


 
MsGuns ©   (2008-10-09 09:30) [25]

>P.S. пошел разбираться в теории. код ОБЯЗАТЕЛЬНО выложу позже.

Умоляю - НЕ НАДО !!!


 
Bless ©   (2008-10-09 10:59) [26]


> теперь еще вопрос: а как узнать о количестве страниц при
> выборке. Если например в таблице 1057 из них мы получен
> только 105 по условию. Где прочитать значение 105


Тебя чертовски непросто понять.
Что такое страница? Что такое "получен 105", кто такой "105"? В таблице 1057 чего? Если "страница" = "запись",  "получен 105"="получим 105 записей", а "1057" =  "1057 записей", то вопрос "где прочитать значение 105" звучит странно. В процитированном мной примере из статьи, который ты, как говоришь, начал догонять, именно автор запроса определяет, сколько записей будет возвращено и такой вопрос стоять не может в принципе.

Кстати, по ссылке, что я тебе давал (еще не зная, что у тебя IB), есть еще и аналог для приведенного мной примера, в котором НЕ используется возможно специфическая для MSSQL конструкция "WITH", и который под IB адаптировать, я думаю, будет несложно. Но поскольку я с IB сколько-нибудь плотно не работал, то в этом я тебе не помогу. Ну а тебе, чтоб сделать это самому, в теории таки придется разобраться :)


 
Василий Жогарев ©   (2008-10-09 11:27) [27]


> Anton   (08.10.08 16:34)  
> Есть таблица. Нужно вывести ее в виде странички. Выводить
> нужно по алвафиту и по частям:1-5, 6-10, 11-15 и т. д.


LIMIT
_______________________________________________________________
MySQL


 
Павел Калугин ©   (2008-10-15 10:21) [28]

В каком виде выводить надо?
Листами на печать?
В форму?


 
antonn ©   (2008-10-15 10:33) [29]


> Anatoly Podgoretsky ©   (08.10.08 18:29) [21]
>
> > Anton  (08.10.2008 17:01:10)  [10]
>
> Не знаю тот ли ты Антон, уж больно много вас.

да, Антоны захватят мир.
Автору темы, тоже-Антону, тоже, наверное, нужно пойти поизуать дельфи и вернуться через 3 года?


 
Anatoly Podgoretsky ©   (2008-10-15 11:22) [30]

> antonn  (15.10.2008 10:33:29)  [29]

А лучше через 10 лет


 
antonn ©   (2008-10-15 11:45) [31]

о как...


 
Плохиш ©   (2008-10-15 11:56) [32]

развлекуха :-D лучше баша :-)))))


 
Anatoly Podgoretsky ©   (2008-10-15 12:20) [33]

Так они цитаты отсюда отщипывают.


 
AndreyV ©   (2008-10-17 11:15) [34]

> [29] antonn ©   (15.10.08 10:33)
> да, Антоны захватят мир.

Антропы уже захватили.


 
brother ©   (2008-10-17 11:22) [35]

нееее, Доны Педры были раньше ;)


 
AndreyV ©   (2008-10-17 11:57) [36]

> [35] brother ©   (17.10.08 11:22)
> нееее, Доны Педры были раньше ;)

Приближаются аНдроны со своими колайдерами.



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

Форум: "Прочее";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.047 c
2-1226656814
Serega87
2008-11-14 13:00
2008.12.21
Количество веток в ветке


15-1224490553
Михаил2
2008-10-20 12:15
2008.12.21
Unicode, зачем так сделано


2-1225564992
codemaster
2008-11-01 21:43
2008.12.21
Перенос Item в TListBox


4-1197385902
dest81
2007-12-11 18:11
2008.12.21
GetVolumeInformation


15-1223469271
Anton
2008-10-08 16:34
2008.12.21
Вопрос новичка. Тема про SQL.





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