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

Вниз

2000 Добавить в SELECT номер строки.   Найти похожие ветки 

 
KAA   (2002-08-14 19:17) [0]

Как можно в селекте сделать еще одно поле, в котором будет порядковый номер строки? Т.е. чтоб все строки были подряд пронумерованы.


 
Suntechnic   (2002-08-14 19:27) [1]

..а что есть порядковый номер? Что он должен собой символизировать? Уникалным идентификатором он не является... более того если ты два раза выполнишь один о тот же запрос никто тебе не сможет гарантировать что под номером 1 будет одна и таже запись. Можно конечно добавить вычисляемое поле и там счётчик вставить, но подумай зачем?


 
Polevi   (2002-08-14 20:06) [2]

затем что если в счете у тебя 200 позиций и клиент хочет одну из них исправить - проще всего найти ее по номеру


 
Anatoly Podgoretsky   (2002-08-14 20:33) [3]

Да но другой запрос может выдать в другой последовательности, если не используется упорядочивание, для исправления лучше использовать другие критерии.


 
Reindeer Moss Eater   (2002-08-14 20:37) [4]

>Polevi ©
Проще всего и всегда было искать по Primary Key.


 
Val   (2002-08-14 20:40) [5]

вечная тема...
надо бы в FAQ уже выкидывать, настолько частая.


 
Suntechnic   (2002-08-14 20:59) [6]

>Polevi © (14.08.02 20:06)
>затем что если в счете у тебя 200 позиций и клиент хочет одну из них исправить - проще всего найти ее по номеру

Найти по номеру что? Нет такого понятия в БД, как номер записи. Вопрос: что вы собираетесь найти по номеру который симолизирует собой позицию записи в окне? Так и говорите, "клиент хочет исправить первую попавщуюся запись", а для этого номер её позиции в окне не нужен.



 
KAA   (2002-08-15 09:24) [7]

Ничего по номеру искать не надо будет, это просто информационное поле. Запрос напрямую клиентским приложением без разбора загоняется в эксел. Одно из полей - это порядковый номер записи, как правильно заметил Polevi, это будет счет выдаваемый клиенту.

>Val
Так хоть подскажи, или ссылку дай.


 
Praco   (2002-08-15 09:25) [8]

Примерно так:
select (select count(*) from authors a1 where a1.au_id <= a.au_id), a.* from authors a
order by a.au_id

"а что есть порядковый номер?" А не нужно теоретизировать. Вопрос-то конкретный. Реальные воплощения SQL серверов, как правило, не соответствуют требованиям реляционной модели. Кроме того, если в форме отчета есть поле "№ п/п", не будешь же рассказывать юзеру теорию реляционных отношений.


 
KAA   (2002-08-15 09:36) [9]

>Praco

Можно чуть подробней, что такое a1, a и поле au_id ?

>Кроме того, если в форме отчета есть поле "№ п/п", не будешь же рассказывать юзеру теорию реляционных отношений.

Все именно так. :)


 
Mike Kouzmine   (2002-08-15 09:37) [10]

Так им. Молодец Praco. Я про "А не нужно теоретизировать.Кроме того, если в форме отчета есть поле "№ п/п", не будешь же рассказывать юзеру теорию реляционных отношений."


 
AlexSam   (2002-08-15 09:45) [11]

Если ты выводишь данные в QR можно построить через QRLabel в событии BeforePrint: i:=i+1


 
KAA   (2002-08-15 09:48) [12]

>AlexSam
В эксель я их вывожу.


 
Johnmen   (2002-08-15 09:55) [13]

>Praco © (15.08.02 09:25)
>Реальные воплощения SQL серверов, как правило, не соответствуют
>требованиям реляционной модели.

Каким это таким требованиям ???


 
wicked   (2002-08-15 10:04) [14]

2 Praco ©
спасибо за идеи... :)
(век живи - век учись...)


 
Reindeer Moss Eater   (2002-08-15 10:07) [15]

Если паровоз должен повернуть, совсем не обязательно в его топку бросать кривые дрова.
Не надо заставлять SQL сервер нумеровать возвращаемый рекордсет, надо нумеровать вставляемые в Excel данные.


 
KAA   (2002-08-15 10:10) [16]

2 Reindeer Moss Eater ©
>Не надо заставлять SQL сервер нумеровать возвращаемый рекордсет, надо нумеровать вставляемые в Excel данные.

Надо. Передо мной стоит задача, полностью формировать таблицу. Полностью, это значит что и порядковые номера записей. Это не технический, а административный вопрос.


 
Reindeer Moss Eater   (2002-08-15 10:12) [17]

>KAA
Не надо. Сделай запрос к данным из книги Excel. Тем более у тебя MSSQL.


 
Reindeer Moss Eater   (2002-08-15 10:14) [18]

Либо промежуточная таблица с дополнительным полем "Номер записи" спасет тебя.


 
KAA   (2002-08-15 10:16) [19]

2 Reindeer Moss Eater

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


 
Polevi   (2002-08-15 10:17) [20]

2Suntechnic ©
Уважаемый, если у меня набор данных отсортирован по коду товара, я вполне могу расчитывать на то что каждый раз порядок строк будет одинаков (если не добавлять позиций). И не надо мне сообщать прописные истины насчет понятия номера записи. В моем понятии клиент это не оператор, который использует мою программу, а клиент компании с которым оператор работает.

2Reindeer Moss Eater
У меня в таблице содержимого счетов несколько милионов записей - пользователю конечно будет очень интересно узнать что первая позиция в его счете имеет номер 1347345 - вот они с клиентом будут общий язык находить по телефону когда клиент из мухосранска передумал и хочет вместо 10 шт товара взять 11 штук..


 
Reindeer Moss Eater   (2002-08-15 10:21) [21]

Сформируйте промежуточную таблицу, добавьте поле "Номер по порядку" Пройдитесь курсором и пронумеруйте это поле.


 
3JIA9I CyKA   (2002-08-15 10:32) [22]

Reindeer Moss Eater дело говорит!


 
Val   (2002-08-15 10:45) [23]

кстати, вопрос знатокам MSSQL: а нет ли у данного сервера такого замечательного псевдостолбца как rownum из Oracle?


 
Praco   (2002-08-15 10:49) [24]

KAA © (15.08.02 09:36)
au_id - уникальный идентификатор. a1 - алиас таблички. Если не понятно, почитай М.Грабера.

Johnmen © (15.08.02 09:55)
>Praco © (15.08.02 09:25)
>Реальные воплощения SQL серверов, как правило, не соответствуют
>требованиям реляционной модели.

Каким это таким требованиям ???

Например: в реляционной модели порядок следования полей не важен. В реальных SQL серверах поля пронумерованы и их порядок, как правило, важен.
NULL значения и операции с ними, трактовка доменов, и т.д.,... вспоминать не охота. Короче, теория реляционных отношений - наука, теория реляционных баз - прикладная псевдонаучка, слишком много упрощений и аксиом. Конкретный SQL сервер в стремлении расширить свои возможности еще больше отходит от требовани теории. MS SQL - яркий пример.
Главный аргумент: реляционное отношение не может быть ненормализовано, иначе это не отношение. Но любой SQL сервер позволяет создавать ненормализованные базы.
Продолжать не хочу, Дейта читал давно. :)




 
3JIA9I CyKA   (2002-08-15 10:53) [25]

2Val - Нету.


 
KAA   (2002-08-15 11:03) [26]

2 Praco ©
Все понял, протормозил немного. :)
Большое спасибо, сработало.


 
Johnmen   (2002-08-15 11:05) [27]

>Praco © (15.08.02 10:49)
>... В реальных SQL серверах поля пронумерованы и их порядок,
>как правило, важен.

Ты где такого начитался ????!!!!!!! :)))))

Уважаемый ! Поскольку ты читал давно, то видимо подзабыл основные моменты реляц.БД ! А теперь, извини, гонишь пургу...

И вообще, какое отнощение нумерация (см.вопрос) имеет к реляционности ???!!!


 
Val   (2002-08-15 11:06) [28]

тогда, скорее всего придется использовать курсор, как уже говорили, получаем соответственно потерю в скорости :(
Вариант же Praco © (15.08.02 09:25) безусловно хорош, но только если не важна сортировка, как я понял. А пользователь, как правило хочет видеть отсортированный и пронумерованный набор.


 
Johnmen   (2002-08-15 11:09) [29]

...И еще...Ты читал некоего и считаешь его рассуждения истиной в последней инстанции...Я же читал множество разных авторов, и они говорят несколько иное, чем Дейт...


 
Leran2002   (2002-08-15 11:24) [30]

А можно такое проделать с Парадохом???
Типа попробывал:
select
(select count(*)
from "customer.db" a1
where a1.CustNo<=a.CustNo) as Num,
a.*
from "customer.db" a
order by a.CustNo

Такой запрос проканывает но во всех записях Num=0...


 
Mike Kouzmine   (2002-08-15 11:25) [31]

Сколько ни читай, и кого ни читай, а истина все равно где-то рядом. Познавший истину молчит, а не познавший - горячится.
(Себя к познавшим не отношу)


 
jonik pegas   (2002-08-15 11:37) [32]

Ты читал некоего и считаешь его рассуждения истиной в последней инстанции...Я же читал множество разных авторов, и они говорят несколько иное, чем Дейт...
Ну что же читай дальше
Был поставлен конкретный вопрос-Praco дал на него конкретный полный ответ!. Можно и поучиться.




 
Johnmen   (2002-08-15 11:51) [33]

>jonik pegas © (15.08.02 11:37) И иже с ним...

Отсутствие внимательности при прочтении постингов не является той чертой, которую надо обозначать и делать на основе этого саркастических замечаний.


 
3JIA9I CyKA   (2002-08-15 12:33) [34]

Кто посмел на Johnmen наезжать!?
Стыдно вам! ОН ЖЕ ПРАВ!!!


 
Mike Kouzmine   (2002-08-15 12:45) [35]

Прав тот, у кого больше прав или денег, что одно и тоже. Любое высказывание любого человека не истина в последней инстанции.
КАА получил задание и спросил конкретно, то надо отвечать конкретно или не отвечать. Ответ "нет и почему" или "да и как" - правильный, а все рассуждения типа "так делать неправильно потому что я (мы, они, и прочие уважаемые деятели) так не делают" являются бредом сивой кобылы.


 
Mike Kouzmine   (2002-08-15 12:47) [36]

3JIA9I CyKA © - стыдно у кого видно, а у кого болтается, то не считается


 
jonik pegas   (2002-08-15 12:50) [37]

Johnmen
Извиняюсь конечно. Погорячился...Мне стыдно
Но на основе совета Praco я сразу же наконец то сделал вывод порядкового номера в запросе для чего ранее мне необходимо было вспомогательное поле-(я задавал такой же вопрос ранее в форуме -ничего лучшего посоветовать не смогли)-отсюда и такая реакция. Но господа, по моему мы спорим на разные темы. Меня устраивает такая ПРАКТИЧЕСКАЯ реализация


 
Johnmen   (2002-08-15 12:56) [38]

>Mike Kouzmine (15.08.02 12:45)

Это ты к чему ?

>Mike Kouzmine (15.08.02 12:47)

>стыдно у кого видно< И тому, кто смотрит.

Ж:-))


 
KAA   (2002-08-15 12:58) [39]

Вообще мой, правда пока крайне небольшой, опыт показал одну вещь, если в программе допущена принципиальная ошибка, то на протяжении написания программы ты будешь с ней бороться, или с ее последствиями. Поэтому если что-то подобное заметил, лучше его в корне прсечь, или это придется сделать потом, когда надоест бороться.
Так что если теория говорит, что делать это не стоит, то надо прислушаться к подобному совету, а то приключений можно найти.

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

Так что идеальный ответ выглядел бы так: "То что ты хочешь несколько криво, и по хорошему это надо сделать так. Но если хочешь по своему делать, то делай вот так."


 
Johnmen   (2002-08-15 13:03) [40]

>jonik pegas © (15.08.02 12:50)

Забыли...
Я тоже иногда горячусь...
Совет Praco © (15.08.02 09:25) вполне премлем, согласен, но дальнейшие его рассуждения о реляц.модели меня сильно напрягли...:))))



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

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

Наверх





Память: 0.54 MB
Время: 0.008 c
1-14041
vinivor
2002-08-26 18:25
2002.09.05
Регулировка звука из программы - как это сделать?


1-14025
Alex4444444444
2002-08-22 11:43
2002.09.05
Сортировка фолдера


3-13974
RDA
2002-08-15 09:45
2002.09.05
Деревья в специализированных компонентах


4-14336
antonyo
2002-07-05 11:06
2002.09.05
Человеки!!!Дайте адресок где можно скачать исходые тексты на API


1-14016
_reset
2002-08-26 12:44
2002.09.05
MDI Modal





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