Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Изменение запроса / 13 сообщений из 13, страница 1 из 1
04.06.2018, 22:01
    #39655233
mKotik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
Добрый день!
Есть два запроса:
1. Общий

SELECT NON EMPTY { [Measures].[Расход Сумма], [Measures].[Прибыль], [Measures].[Рентабельность] } ON COLUMNS, NON EMPTY { ([База].[База].[База].ALLMEMBERS * [Дата].[Месяц].[Месяц].ALLMEMBERS * [Клиент].[Клиент N].[Клиент N].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM [Движение Товара] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

2. Уникальный
SELECT NON EMPTY { [Measures].[Расход Сумма], [Measures].[Прибыль], [Measures].[Рентабельность] } ON COLUMNS, NON EMPTY { ([База].[База].[База].ALLMEMBERS * [Дата].[Месяц].[Месяц].ALLMEMBERS * [Клиент].[Клиент N].[Клиент N].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( Filter( [Клиент].[Клиент N].[Клиент N].ALLMEMBERS, Instr( [Клиент].[Клиент N].currentmember.Properties( 'Member_Caption' ), 'NN00000000' ) = 1 ) ) ON COLUMNS FROM [Движение Товара]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

Как правильно написать запрос, который будет из Общего вычитать Уникальный?

ЗЫ Извините за вопрос - только учусь :)
...
Рейтинг: 0 / 0
05.06.2018, 02:16
    #39655295
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
...
Рейтинг: 0 / 0
05.06.2018, 10:34
    #39655402
Ivan Durak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
че в MDX уже тоже лефт и фулл джоины есть???
...
Рейтинг: 0 / 0
05.06.2018, 12:55
    #39655526
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
Сорри. Мои соболезнования.
...
Рейтинг: 0 / 0
05.06.2018, 12:59
    #39655529
tarrus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
982183,

Диаграммы Венна использовать для объяснения джойнов не правильно.

Если inner join пересечение, то что такое intersect?
...
Рейтинг: 0 / 0
05.06.2018, 13:19
    #39655544
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
tarrusДиаграммы Венна использовать для объяснения джойнов не правильно.

Если inner join пересечение, то что такое intersect?отнюдь... они прекрасно показывают суть.
что до intersect, то это inner join + distinct (если упрощённо) плюс с ограничениями на объединяемые множества.
...
Рейтинг: 0 / 0
05.06.2018, 13:40
    #39655569
tarrus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
ДедушкаtarrusДиаграммы Венна использовать для объяснения джойнов не правильно.

Если inner join пересечение, то что такое intersect?отнюдь... они прекрасно показывают суть.
что до intersect, то это inner join + distinct (если упрощённо) плюс с ограничениями на объединяемые множества.

Не согласен. Это очень путает новичков (да и не только).

В теории множест нет никаких джойнов, т.к. джойн генерирует новое множество состоящее из совершенно других объектов.

Пример: К Студентам можно присоединить Номера, но объединить Студентов с Номерами нельзя.

Я столько всякой ахинеи наслушался из-за применения к джойнам этих диаграмм.
...
Рейтинг: 0 / 0
05.06.2018, 14:25
    #39655618
Дедушка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
tarrusПример: К Студентам можно присоединить Номера, но объединить Студентов с Номерами нельзя.можно если они одинакового типа, например строки.
бритва Окама, не нужно придумывать "лишнее" это просто картинки.
либо приводите пример какая картинка (из тех что выше) неправильно описывает тип соответствующего соединения.
...
Рейтинг: 0 / 0
05.06.2018, 16:10
    #39655731
tarrus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
ДедушкаtarrusПример: К Студентам можно присоединить Номера, но объединить Студентов с Номерами нельзя.можно если они одинакового типа, например строки.
бритва Окама, не нужно придумывать "лишнее" это просто картинки.
либо приводите пример какая картинка (из тех что выше) неправильно описывает тип соответствующего соединения.

Если вспомнить, что SQL создан для реляционных баз данных. Реляционный - не просто слово, а ключевое слово.

Если вспомнить ввести понятие отношения, то натягивать сову диаграммы Венна на глобус отношения не придется.
...
Рейтинг: 0 / 0
06.06.2018, 04:56
    #39656048
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
А в чем проблема реализовать LeftJoin без него самого

В простейшем виде это может выглядеть так:
http://www.sqlfiddle.com/#!18/326d2/7
...
Рейтинг: 0 / 0
06.06.2018, 12:24
    #39656334
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
mKotikКак правильно написать запрос, который будет из Общего вычитать Уникальный?
ЗЫ Извините за вопрос - только учусь :)
Для этого нужно понять, что - если уж очень упрощенно - у Вас есть запрос по одному set и запрос по другому set, и Вам таки очень нужен запрос по третьему set, который является результатом работы MDX функции except .
...
Рейтинг: 0 / 0
07.06.2018, 11:55
    #39657234
mKotik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
Andy_OLAP, спасибо за вопрос.
автортаки очень нужен запрос по третьему set, который является результатом работы MDX функции except.
Именно так.
Есть Общий запрос, который выводит 2 млн строк
Код: sql
1.
2.
3.
SELECT NON EMPTY { [Measures].[Расход Сумма], [Measures].[Прибыль], [Measures].[Рентабельность] } 
        ON COLUMNS, NON EMPTY { ([База].[База].[База].ALLMEMBERS * [Дата].[Месяц].[Месяц].ALLMEMBERS * [Клиент].[Клиент N].[Клиент N].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME 
        ON ROWS FROM [Движение Товара] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS 


И есть Уникальный запрос туда же с 2 тыс. строк
Код: sql
1.
2.
3.
4.
SELECT NON EMPTY { [Measures].[Расход Сумма], [Measures].[Прибыль], [Measures].[Рентабельность] } 
        ON COLUMNS, NON EMPTY { ([База].[База].[База].ALLMEMBERS * [Дата].[Месяц].[Месяц].ALLMEMBERS * [Клиент].[Клиент N].[Клиент N].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME 
        ON ROWS FROM ( SELECT ( Filter( [Клиент].[Клиент N].[Клиент N].ALLMEMBERS, Instr( [Клиент].[Клиент N].currentmember.Properties( 'Member_Caption' ), 'NN00000000' ) = 1 ) ) 
        ON COLUMNS FROM [Движение Товара]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS


с добавленным параметром Клиент N = 'NN00000000'
Код: sql
1.
ON ROWS FROM ( SELECT ( Filter( [Клиент].[Клиент N].[Клиент N].ALLMEMBERS, Instr( [Клиент].[Клиент N].currentmember.Properties( 'Member_Caption' ), 'NN00000000' ) = 1 ) )


Чтобы не "плодить" запросы и делать дополнительную работу хотел написать единый запрос, который исключал из Общего запроса Уникальный. Результативный запрос = Общий запрос - Уникальный запрос.

PS Ещё раз извините за может быть глупые вопросы.
...
Рейтинг: 0 / 0
08.06.2018, 16:43
    #39658498
mKotik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение запроса
Спасибо всем за участие!
Оказалось совсем всё просто -> (<> 1):
Код: sql
1.
FROM ( SELECT ( Filter( [Клиент].[Клиент N].[Клиент N].ALLMEMBERS, Instr( [Клиент].[Клиент N].currentmember.Properties( 'Member_Caption' ), 'NN00000000' ) <> 1 ) )
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Изменение запроса / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]