Форум: "Базы";
Текущий архив: 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