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

Вниз

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

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

>jonik pegas © (15.08.02 12:50)

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


 
Mike Kouzmine   (2002-08-15 13:04) [41]

Не к тебе Johnmen. А к другому. Прошу прощения за похабщину у всей честной компании, не выспался. Да и дым над Москвой, настроения не прибавляет. :(


 
Praco   (2002-08-15 13:04) [42]

Johnmen ©
ОК, про поля неправ. Хотел сказать: в отношении атрибуты не упорядочены, а в таблице БД упорядочены(существует порядок перечисления полей в таблице). => Отступление от реляционной модели.

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

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

Свойства отношений(не все) :
-кортежи уникальны
-значения атрибута в любом кортеже атомарно

Реальные СУБД допускают нарушения этих свойств для табличек. И это не единственные отклонения от модели. Вот что я хотел сказать.

Мне Дейт тоже не понравился, но если он не авторитет, то кто?



 
Johnmen   (2002-08-15 13:23) [43]

>Praco © (15.08.02 13:04)

Авторитетов много...И что самое интересное, их понимание и определения реляц.модели могут расходиться ! (не сильно, но могут).

>Реальные СУБД допускают нарушения этих свойств для табличек.

Ну пусть. Главное, чтобы человек не нарушал. Хотя допускается и нарушение в утилитарных целях :)




 
SergSuper   (2002-08-15 13:59) [44]

> Praco
По-моему Вы путаете требования к структуре БД с требованиями к SQL серверам. Я например не могу представить (и наверняка Вы не сможете) что бы сервер не позволяет создавать ненормализованные базы.


 
Suntechnic   (2002-08-15 17:47) [45]

Ну и наговорили, даже комментировать нет желания. Только по сути...
>Polevi © (15.08.02 10:17)
Уважаемый, если у меня набор данных отсортирован по коду товара, я вполне могу расчитывать на то что каждый раз порядок строк будет одинаков (если не добавлять позиций).
Вы уж оговаривайте сразу все условия... если не добавлять, если не удалять, если не редактировать код товара... итого: если набор данных статический. Может в вашем конкретном случае оно и так, но не надо давать советы космического маштаба всем остальным.

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

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


Единственное практическое применение этого номера я вижу в улучшаемости читаемости отчётов и всё. Но... Вы видели план запроса генерируемый сервером для того что вы предложили? Зачем вы заставляете заниматься сервер дурной работой? А работа ведь дурная, потому как с точки зрения сервера это число полная фикция. Уж если так сложилось что клиенту нужен этот номер(клиент в смысле ПО), то его проше генерить во время отображения или генерации отчёта на этом самом клиенте.


 
Reindeer Moss Eater   (2002-08-16 08:47) [46]

>Suntechnic
В том то и дело, что на план смотрят немногие, зато почти все усвоили простую, но часто спорную истину - "курсор - это тормоза"


 
Ekaterina   (2002-08-16 08:50) [47]

А всё-таки, почему в Paradoxe такой запрос не работает как надо?


 
Leran2002   (2002-08-16 09:03) [48]

можно воспользоваться генератором:
CREATE GENERATOR NUM_GEN;

перед использыванием ставим его в 0:
SET GENERATOR NUM_GEN TO 0;

а потом выполнить запрос:
SELECT GEN_ID(NUM_GEN,1) AS NUM, C.*
FROM CUSTOMER C;

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


 
Reindeer Moss Eater   (2002-08-16 09:21) [49]

>Leran2002
А нет генераторов в MSSQL.


 
Leran2002   (2002-08-16 09:45) [50]


> Reindeer Moss Eater (16.08.02 09:21)

Да жалко конечно...


 
nikolo   (2002-08-16 10:20) [51]

Слушайте, ребятки, давайте договоримся на будущее, что если задается конкретный вопрос, то нужно давать конкретный ответ!
Если делать нечего и хочется просто потрепаться, то для этого есть соответствующий раздел. Своими умозаключениями вы просто достаете, читать смешно. У человека проблема, а вы ему "...а что есть порядковый номер?" Да какая разница? Козе сразу понятно, что ему нужно получить!
Надеюсь, вы будете не против моего предложения.


 
Johnmen   (2002-08-16 10:28) [52]

>nikolo © (16.08.02 10:20)
>...Своими умозаключениями вы просто достаете, читать смешно.

Так достаем или смешно ? Ты бы определился...
А уж потом м.б. и заглючим договор...


 
Reindeer Moss Eater   (2002-08-16 10:30) [53]

>nikolo
Ну вот пример такого конкретного ответа:
Добавить физическое поле в таблицу, к которой делается запрос.
Выполнить запрос c RequestLive=True.
Пройти по записям и пронумеровать их.
Встать в начало набора данных.
А польза от такого конкретного совета?


 
Suntechnic   (2002-08-16 10:34) [54]

>nikolo © (16.08.02 10:20)
Интересно, вы давно на этом форуме? Что-то мне подсказываеь что недавно. Я не беру в рассмотрение данный конкретный случай, но зачастую тут(на форуме) народ сам неведает чего хочет. А такие альтруисты как я :) пытаются всё-таки разобраться зачем надо изобретать велосипед...

Своими умозаключениями вы просто достаете, читать смешно.
Ну тут проблема решается достаточно просто, не читайте...

Сколько людей столько мнений... у вас оно одно... у других другое... так что будьте терпимее.


 
Polevi   (2002-08-16 11:22) [55]

2Suntechnic ©
Где вы видели чтобы я в этой ветке что-нибудь кому-нибудь советовал ??? Если юзер хочет номер записи - значит так надо вот и все.


 
Suntechnic   (2002-08-16 11:37) [56]

>Polevi © (16.08.02 11:22)
Где вы видели чтобы я в этой ветке что-нибудь кому-нибудь советовал ???
Ваш самый первый пост можно трактовать как совет. Хотя если оно не так прошу прощения...

Если юзер хочет номер записи - значит так надо вот и все.
Желание клиента закон :)



 
cherruty   (2002-08-16 11:37) [57]

Это же очень просто читайте Рона Стаукап "SQL Server"

SELECT RankID =
( select count (distinct Field1 )
FROM Table1
WHERE Table1.Field1 <= Table.Field1 ),
Table.*
FROM Table1 Table

RankID и будет порядковый номер
Field1 - любое поле с уникальными значениями




 
cherruty   (2002-08-16 11:38) [58]

Это же очень просто читайте Рона Стаукап "SQL Server"

SELECT RankID =
( select count (distinct Field1 )
FROM Table1
WHERE Table1.Field1 <= Table.Field1 ),
Table.*
FROM Table1 Table

RankID и будет порядковый номер
Field1 - любое поле с уникальными значениями




 
Johnmen   (2002-08-16 11:49) [59]

>cherruty (16.08.02 11:38)

Рона Стаукап ты конечно почитал, а вот предыдущие посты видимо было влом...:)


 
Temp   (2002-08-16 12:40) [60]

Можно создать процедуру:

create table #Test(ID_REC int identity(1, 1) not null,далее список нужных полей)

insert into #Test(список нужных полей) select (список нужных полей) from Test where условия

select * from #test

в итоге получаем поле ID_REC с номерами по порядку


 
Кулюкин Олег   (2002-08-16 13:25) [61]

2 nikolo © (16.08.02 10:20)
> Слушайте, ребятки, давайте договоримся на будущее, что если задается конкретный вопрос, то нужно давать конкретный ответ!
Вся трудность в том, что часто задается "неправильный" вопрос, т.к. человек его задавший неверно понимает стоящую перед ним задачу (или подходы к ее решению).
В таких случаях лучше не отвечать на вопрос сразу, а уточнить, чего на самом деле хочет автор.


 
nikolo   (2002-08-16 13:33) [62]

> cherruty, молодец! Из всех единственно правильный ответ дал. Вот только кажется делать надо не
"SELECT RankID =", а "SELECT distinct RankID ="


 
Delirium   (2002-08-16 13:55) [63]

set nocount on
select Identity(int, 1,1) as Num, *
into #tmp from MyTable
select * from #tmp
drop table #tmp


 
KSergey   (2002-08-16 15:27) [64]


> Delirium © (16.08.02 13:55)

Эх, не успел я ;)
Да, вот это именно то средство, которое есть в MS SQL для нумерации
Можно еще несколько иначе извернуться - после выборки темповой таблицы добавить в ней поле Identity, хотя вот именно такого способа, как у Delirium я не знал...


 
3JIA9I CyKA   (2002-08-16 15:33) [65]

И я 8(


 
asdf   (2002-08-16 15:40) [66]

Догоним постов до сотки?!!!:)
Не много осталось!:)))



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

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

Наверх





Память: 0.58 MB
Время: 0.009 c
1-14166
-=M-A-K-C=-
2002-08-24 22:42
2002.09.05
Как в мою прогу, неиспользующую Form, зусунуть HotKey


7-14286
Proton
2002-06-23 03:55
2002.09.05
клавиши управления пистанием


7-14307
KPY
2002-06-27 08:19
2002.09.05
Не могу поймать VK_RWIN


3-13961
Guest2
2002-08-16 11:58
2002.09.05
Помогите с SQL


7-14315
Glonia Zbanov
2002-06-24 16:58
2002.09.05
Desktop





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