|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
Уважаемый Mnior, может быть Ваш способ и лучше, но, к сожалению, мне пока не хватает знаний понять синтаксис запроса, квадратные скобки ставят меня в тупик) спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 13:01 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
rukesaУважаемый Mnior, может быть Ваш способ и лучше, но, к сожалению, мне пока не хватает знаний понять синтаксис запроса, квадратные скобки ставят меня в тупик) спасибоYEAR, FROM, TO - это, вообще-то, ключевые слова TSQL. То, что они как-то обрабатываются в качестве имён полей таблицы сервером, - бонус с его стороны, на который нельзя всегда полагаться. Если имена объектов содержат недопустимые символы или ключевые слова, их надо заключить в двойные кавычки (если SET QUOTED_IDENTIFIER ON) или в квадратные скобки (они работают всегда) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 13:07 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 15:33 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
Shakillа зачем усложнять задачу?Где? Наоборот, упрощаю. Есть одна модель понимания - и все "формулы" становятся одинаковыми во всех 100500 разнообразных задачах и главное простыми. И читаются мгновенно. А так, "А тут у нас нет у даты времени, так давайте сделаем всё по другому и вымучаем формулы" Как в анекдоте: - В командирских часах 8 стрелок. - Зачем? - 4-ре для дезориентации противника! Shakillесли в опорной таблице ...., то для проверки ... ... и это самый простой вариантГде он проще? Посмотрите на мой запрос - он что сложнее? Ваш сложнее, ибо надо всё понять через призму множества всяких "если-то". Shakillно это общий подход и код бы получился несколько сложнееГде? Вы мне ответьте где сложнее? Конкретно. rukesaдействительно, время в данной таблице всегда 00:00:00.000Зачем вам об этом думать, есть там оно или нет? Завтра придёт заказчик и скажет "А давайте будет" И всё, ваш код уже не работает. Смысл. Вы не путайте объективное "проще", от вашего субъективного. Не умеет кого-то пользоваться молотком, не значит что надо всегда бить гвозди микроскопом. Ага, педалью "газ" умею пользоваться, а вот "тормоз" не понимаю?! Надо знать то чем пользуетесь, т.е. базовые основы скуля и MSSQL. авторможет быть Ваш способ и лучше, но, к сожалению, мне пока не хватает знаний понять синтаксис запроса, квадратные скобки ставят меня в тупик)Да неужели вы решили задать вопрос?! Как-то нестандартно для гуманитария. Обычно у них "непонятное - игнорируй". А также, "не важен результат, и на сколько он хорош/правилен, главное что галочка есть и 'мне нравиться'". Надеюсь что уже стало понятно. Но вопросы можно задавать. Разрешаю. "ставят меня в тупик" - у не нормальных людей обычно "появляются вопросы, которые так приятно познать", притом познать в первую очередь самому, чтобы эту познавалку развить, чтобы догадываться до всего на свете самому. fwqefwqfrg , BrainFuck ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 17:05 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
Mnior, хотелось выписаться (от слова писАть) :D ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 17:52 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
Mnior, на самом деле хотелось сделать, чтобы каждая таблица были считаны по одному разу. Но вылезла куча сортировок и не каким индексом не поправить это так как последовательность дат из разных таблиц. Вобщем выложил что есть для Brain Fuck'a... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 17:58 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
fwqefwqfrg Код: sql 1.
Как вариант объединения пересекающихся и входящих друг в друга интервалов ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 18:47 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
efqwefqweхотелось сделать, чтобы каждая таблица были считаны по одному разуБоже. А не было задачи написать запрос чтобы букв A было чётным?! Единственный смысл таблицы годов как раз и считываться много раз - делить отрезки на куски. Изначальный смысл вещей ничто не должно затмевать, тем более всякие симулякры. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 23:04 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
Добрый Э - Эхfwqefwqfrg Код: sql 1.
Как вариант объединения пересекающихся и входящих друг в друга интервалов Спасибо за такой вариант. Хорошо, можно не преобразуя таблицу сразу все считать. И за сайт тоже, не знал про него. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 23:22 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
Mnior, согласен MniorЕдинственный смысл таблицы годов как раз и считываться много раз - делить отрезки на куски. Хм. А может обращаться к таблице каникул N раз, где N - количество годов в таблице годов? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2013, 23:32 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
OFFTOP лучше 10 раз по разу, чем ни разу 10 раз ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 08:02 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
оффтоп 2 MniorMniorShakillно это общий подход и код бы получился несколько сложнее Вы мне ответьте где сложнее? Конкретно. моя подсказка была для исходных данных из 14609975 этого сообщения. то есть автору оставалось дописать только select к тому что он уже сделал. принципиальных отличий нет, и я думаю ТС способен понять на примерах нюансы типа того, когда надо включать границы интервалов, а когда - наоборот. но непонятно, зачем по такой мелочи вы пишете столько много букв. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 13:54 |
|
Вопрос по выборке
|
|||
---|---|---|---|
#18+
wefqwefqХм. А может обращаться к таблице каникул N раз, где N - количество годов в таблице годов?Вы хотите решить статистическую задачу? Перед этим надо проверить осмысленность задачи. И практически задача ТС не имеет смысла. Обычно собирается данные за один год, для подсчёта. Во вторых, надо понимать первую проблему диапазонов в скуле: Модель с двумя полями (From,To) нормально не оптимизируется, ибо индексы линейны, см подробности ( 12610105 ). Т.е. поиск, аля: From >= X AND To < Y - вываливается в полу-скан. В моём случае диапазон указывается по одному полю: From >= Y AND From < Y что сильно ограничивает скан (в основном до одного значения). В третьих Статистически количество годов намного больше, чем пересечений года в диапазонах. Отпуска более года вообще редкость. Соответственно полу-сканы ещё менее покрываемы Поэтому, предлагаемый вами "обратный вариант" будет обрабатывать заметно больше строк. В четвёртых, эти данные собираются для конкретной цели, для которых порядок данных может быть существенный. В вашем случае жёсткий порядок сбора и объединение смешивает карты и может добавить дополнительные большие ресурсы сортировки. В моём случае порядок данных отпусков неважен, не определяется и не навязывается. В пятых, я говорил про множественное считывание, о его неизбежности, ибо эта задача о генерации данных, а не к примеру "слиянии". И тут уже не важно, повторно считывается Года или Отпуска - те же яйца, только в профиль. В шестых, запрос должен быть декларативным, и сервер должен сам выбирать порядок соединения. Но к сожалению не всякое выражение декларативно для сервера, но если появятся соответствующие оптимизации (что вероятно, т.к. функция детерминирована и линейна), то можно сказать что я не задаю порядок соединения. К тому же его можно поменять простой перестановкой. эквивалентное выражение Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 20:52 |
|
|
start [/forum/topic.php?fid=46&msg=38344212&tid=1705947]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
149ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 237ms |
total: | 485ms |
0 / 0 |