@dba_ru

Страница 144 из 718
lost
26.05.2017
15:46:40
во втором подзапросе ты делаешь выборку по твоим датам и присваешь строкам склаляры

тоже самео делаешь в запросе с юнионами

на селект из каждой таблицы делаешь скаляр

ну и джойнишь 2 подзапроса между собой через скаляры

Google
lost
26.05.2017
16:03:04
А если даты в таблицах не пересекаются, то можно и без скаляров обойтись

Yuri
26.05.2017
16:10:07
У меня скорее не пересекаются, имеется в виду что на каждый месяц своя таблица с данными (структура таблиц одинаковая)

Alex
26.05.2017
16:10:32
и что мешает сделать UNION ?

Yuri
26.05.2017
16:10:37
Надо подумать

Мильон мильонов строк выходящих в итоге?

Alex
26.05.2017
16:12:19
эм зочем ?

Yuri
26.05.2017
16:13:51
Не знаю пока что мешает, я далеко от компа... Заранее спасибо))

Vladislav
26.05.2017
16:14:22
Юнион и делаете селекты по нужной дате

Главное не забыть сделать union all

А иначе и план будет диким и данные можете потерять

Al
26.05.2017
16:48:00
А иначе и план будет диким и данные можете потерять
Дикий план это неизвестный приход. Нужно всегда брать проверенный план. :)

Vladislav
26.05.2017
16:48:51
Отличия union от union all как бы...

Очень часто это путают, хотя их работа "под капотом" очень сильно отличается

Google
lost
26.05.2017
17:27:05
естественно, это все равно что времянка будет с параметром distinct

aster
26.05.2017
17:31:43
другого варианта нет при таких условиях
Ну может на конверсиях как то "удешевить"? Типа в ltrim и rtrim заключить? Не будет "дешевле"? Сейчас почти сутки запрос работает )

Yuri
26.05.2017
17:32:19
А боюсь спросить, скалярки это что такое? Я вроде понял, но хочется узнать

Vladislav
26.05.2017
17:33:00
естественно, это все равно что времянка будет с параметром distinct
Это сортировка, а следовательно полное чтение и перетасовка

Yuri
26.05.2017
17:35:35
Константы что-то типа?

Не совсем понимаю просто

Vladislav
26.05.2017
17:36:07
Ну может на конверсиях как то "удешевить"? Типа в ltrim и rtrim заключить? Не будет "дешевле"? Сейчас почти сутки запрос работает )
Хотя мне кажется, что у вас там костыль костылем погоняет и скорее надо передумать архитектуру

lost
26.05.2017
17:36:33
Константы что-то типа?
типа да, ты же можешь сделать в запросе SELECT 1, 2, 3, NOW() и так далее

Vladislav
26.05.2017
17:37:01
aster
26.05.2017
17:37:24
Хотя мне кажется, что у вас там костыль костылем погоняет и скорее надо передумать архитектуру
Не, эт запрос не тривиальный ) Будут переливать в другой датастор и там уже индекс сделаю

Yuri
26.05.2017
17:37:50
А, ты имеешь в виду объединить и проставить каждой таблице за какой она месяц?

lost
26.05.2017
17:38:22
типа того

Vladislav
26.05.2017
17:38:32
Конечно, в противном случае разделение таблиц бессмысленно

Yuri
26.05.2017
17:39:11
Чтобы потом селектить по этому полю и выбирать нужную "таблицу"

Vladislav
26.05.2017
17:39:36
Или несколько, в общем, раздолье

Yuri
26.05.2017
17:39:39
Ну да, я пока ехал домой, тоже о чем то похожем думал

lost
26.05.2017
17:40:49
юнион правда может быть толстый нахальный и противный, но щито поделать, если такая структура хранения

Yuri
26.05.2017
17:41:53
В принципе, это вроде как самый очевидный вариант

Google
Vladislav
26.05.2017
17:42:46
юнион правда может быть толстый нахальный и противный, но щито поделать, если такая структура хранения
Union all в mssql умеет просто склеивать таблицы и если таблицы идентичны по всем признакам, нагрузка будет минимальна

Yuri
26.05.2017
17:43:05
Хотя я и говорил что объединить не выйдет, на самом деле я думал, может чего-нить попутнее предложите ?

Vladislav
26.05.2017
17:43:24
Ну и вроде в 2012 или в 2014 версии что-то было на этот счет как раз, типа склеивания

lost
26.05.2017
17:44:13
а там mssql ? а то вроде как не указывали какая бд...

Vladislav
26.05.2017
17:44:43
А я запутался, у кого из них mssql ?

Yuri
26.05.2017
17:46:05
Mssql

Ssms

2012

Vladislav
26.05.2017
17:47:32
Тогда рекомендую посмотреть доку, вроде что-то там был для склейки таблиц

Ilya
26.05.2017
17:54:23
а в результате что надо получить? данные из всех таблиц? насколько данных будет меньше после джойна?

Vladislav
26.05.2017
17:57:40
Не совсем понимаю, как джойнить разные таблицы...

Yuri
26.05.2017
17:58:56
Не совсем понимаю, как джойнить разные таблицы...
Я неправильно выразился, у меня несколько таблиц одной структуры, но с данными для разных месяцев

Yuri
26.05.2017
18:00:46
а в результате что надо получить? данные из всех таблиц? насколько данных будет меньше после джойна?
А в итоге надо сверку сделать, есть ли данные из левой таблицы в правых, проставить какие-нибудь флажки наличия, получить протоколы для каждого периода месяцев

По сути должно быть (в идеале) столько же сколько в левой таблице, задача сводится к простой проверке есть ли такая же запись в правой таблице

Не по всем полям одинаковая, а по некоторым

Ilya
26.05.2017
18:10:10
а чем тебе не нравится юнион, если в резулитате данные из всех таблицы всё равно окажутся в результатах запроса?

Yuri
26.05.2017
18:11:58
Мне нравится вариант предложенный lost soul; я не говорил, что юнион мне не нравится... Я даже о чём то что похожем думал

Al
26.05.2017
18:14:02
Че огороды то городить

Google
Ilya
26.05.2017
18:14:41
можно ещё сделать наоборот - сделать юнионы результатов

Yuri
26.05.2017
18:14:48
Сделаем, как комп освободят :))

Al
26.05.2017
18:14:50
Делаешь выборку поочереди. А потом результаты хоть крест на крест склеивай в приложентт

Ilya
26.05.2017
18:15:59
всё зависит от объема данных

Al
26.05.2017
18:16:35
От перемены мест слагаемых сумма не изменится

Alex
26.05.2017
18:17:21
Я бы еще спросил нахера такое делать с данными

Ну да ладно

Admin
ERROR: S client not available

Ilya
26.05.2017
18:17:47
кстати хороший вопрос)

нахрена их разбивать на таблицы?

Yuri
26.05.2017
18:18:43
Из базы данные за месяца выгружались

Поэтому

Это ещё до меня было, поэтому такое положение дел закрепилось

Yuri
26.05.2017
18:22:04
А задача с верху поступила, им захотелось к понедельнику, и не ебет, извиняюсь за выражение :D

Al
26.05.2017
18:22:27
Из базы данные за месяца выгружались
В эксел? Что бы тетенькам в бухгалтерии распечатать и в шкапчик положить? Типа такой бекап хардкорный

Yuri
26.05.2017
18:23:44
Да хрен знает что они с ними делать будут. Главное же сделать в срок

Al
26.05.2017
18:24:03
Тогда вообще не понятно. Слей все в одну таблицу. Они ж одинаковые и отсортируй по времени и выбирай че хошь

Google
Sega
26.05.2017
22:44:09
Здрасте

с sql помочь разобраться никто не может?

Yuri
26.05.2017
22:46:41
Sega
26.05.2017
22:47:19
нужно помочь описать сложный запрос

нужно сделать выборку из нескольких таблиц, по отдельности все получается на ура

но как все объеденить без понятия

Yuri
26.05.2017
22:48:37
внешние ключи, джойны, подзапросы?

Sega
26.05.2017
22:48:41
второй день бьюсь со всеми этими join и вложеными запросами

Yuri
26.05.2017
22:51:09
пример привести можете?

Sega
26.05.2017
22:52:11
Можно в личные скину?

Yuri
26.05.2017
22:52:24
давайте

Доброго всем времени суток, поднимаю вчерашнюю тему, только задача чуть иная: нужно сравнивать те же данные слева с одной и той же таблицей, но с разными её версиями (по времени имеется в виду) в разных базах

Есть вариант разбить таблицу слева для каждой соответствующей версии

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

Юнион по понятным причинам тут не попрет, тут даже union all нужен, потому что нельзя терять данные из таблиц, но нет

Al
27.05.2017
07:36:54
Я так и не понял почему нельзя обьединять таблицы

Видимо религия какая то. Свидетели месячных таблиц

Yuri
27.05.2017
07:41:18
Ну блин, считайте, 12 месяцев максимум, по 2 млн строк, 24 выйдет... Я, у меня нет опыта просто, я думаю что столько записей, это уже слишком много... Для обхода, для отсева нужных данных по общему полю

Страница 144 из 718