![]() |
|
Модераторы: Akina |
![]()
|
|
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: нет Всего: 102 |
недавно перешел на MS SQL и после Paradox'a мощь немного ошеломляет...
а собственно вопрос такой можно ли составлять запросы такого вида: например надо получить из таблицы А все ряды, про которые в таблице B (в поле table_a_id) нет данных (т.е. чтобы запрос вида SELECT id from B WHERE table_a_id=A.id был nil) ? или например выбрать все данные из таблицы в которых поле с датой и сегодняшней датой различается на N-ное количество дней? судя по всему все мои вопросы сводятся к одному, как составлять более сложные запросы чем select * from sometable есть ли краткий on-line справочник по синтаксису? -------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Вот один из кучи возможных вариантов.
Вообще можно почти все (трудно придумать то, чего нельзя)
MSDN -> Enterprise Development -> Windows Server System -> Microsoft SQL Server -> ... ->Transact-SQL Reference -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| Papirus |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 19.4.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
||||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Могу составить боооольшой список.... Но с этим обычно сталкиваются гораздо позже.... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Того что вообще нельзя или того что делается с большим геморроем? и при этом находится в рамках реляционной модели (без идиотских просьб "взять значение из предыдущей ячейки")? Впрочем с помощью хранимых процедур и такую хрень можно забахать без особого труда... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
С учётом того что можно положить курсор типа "Select * From MyTable" с тем чтобы построчно пройти таблицу при наличии возможности вызовов внешних DLL то действительно можно сделать всё, но многие вещи реализуются исключительно сложно, громоздко, работают медленно и отбирают много ресурсов.
Модель - лишь идеал, который помогает стройно реализовать некую идеальную ситуацию. Реалии таковы, что хорошая модель охватывает 95-99% ситуаций, а остальные 1-5% реализуются исключительно геморройно преодолевая недостатки модели какими-нибудь окольными путями. Года 2 назад мне пришлось решать эту "идиотскую просьбу" из предыдущей ячейки, на тот момент мне ситтуация не казалась не смешной и идиотской, а пришлось потратить неимоверные усилия чтоб её решить, причём таблицы были вполне нормализованы и достаточно логичны... и задача оказалась вполне логичной... Если есть интерес могу привести этот пример. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Надеюсь, это не будет слишком оффтопно? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 5 Всего: 207 |
Таблица полётов на самолёте людей. Примерный вид:
Одно путешествие выглядит как : 1Сегмент - из Чикаго до Майями отлёт 1.2.2005 3Сегмент - из Майами до Детройта отлёт 2.3.2005 7Сегмент - из Детройта до Чикаго отлёт 5.6.2005 Сегмент - это один какой-то "участок" путешествия, нумерация только вперёд, т.е. следующий по времени отрезок пути будет иметь больший номер, но не сквозная - пропуски возможны совершенно случайным образом. Иногда агенты вставляют фиктивный сегмент-разделитель: 1Сегмент - из Чикаго до Майями отлёт 1.2.2005 3Сегмент - из Майами до Детройта отлёт 2.3.2005 5Сегмент - фиктивный 7Сегмент - из Детройта до Чикаго отлёт 5.6.2005 В таблице это выглядит как Путешествие1|1|Дельта|Чикаго|Майами|1.2.2005 Путешествие1|3|Дельта|Майами|Детрой|2.3.2005 Путешествие1|5|Фиктив| Путешествие1|7|Дельта|Детройт|Чикаго|5.6.2005 Так как репорт запускается с группировкой по дате, а фиктивный сегмент хотя и не имет даты на репорте всё же должен показываться в правильном месте, фиктивному сегменту надо присвоить дату предыдущего сегмента того же путешествия. Так как задача стала после многих лет работы програм и на моменть появления проблемы в таблицах уже были десятки(если не сотни) миллионов записей, то надо было исправить уже имеющиеся данные. Т.е. для каждого фиктивного сегмента найти предыдущий (самый большой по номеру меньший фиктивного) сегмент и из него дату вставить в фиктивный в пределах одного путешествия. PS. Задача довольно сильно упрощена, я попытался передать смысл и самый минимальный объём информации, на самом деле участвовало гораздо больше таблиц и параметров, но реально камнем преткновения стала такая ситуация. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |