powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Изменение запроса
13 сообщений из 13, страница 1 из 1
Изменение запроса
    #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
Изменение запроса
    #39655295
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Изменение запроса
    #39655402
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
че в MDX уже тоже лефт и фулл джоины есть???
...
Рейтинг: 0 / 0
Изменение запроса
    #39655526
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри. Мои соболезнования.
...
Рейтинг: 0 / 0
Изменение запроса
    #39655529
tarrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183,

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

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

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

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

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

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

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

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

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

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

В простейшем виде это может выглядеть так:
http://www.sqlfiddle.com/#!18/326d2/7
...
Рейтинг: 0 / 0
Изменение запроса
    #39656334
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mKotikКак правильно написать запрос, который будет из Общего вычитать Уникальный?
ЗЫ Извините за вопрос - только учусь :)
Для этого нужно понять, что - если уж очень упрощенно - у Вас есть запрос по одному set и запрос по другому set, и Вам таки очень нужен запрос по третьему set, который является результатом работы MDX функции except .
...
Рейтинг: 0 / 0
Изменение запроса
    #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
Изменение запроса
    #39658498
mKotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за участие!
Оказалось совсем всё просто -> (<> 1):
Код: sql
1.
FROM ( SELECT ( Filter( [Клиент].[Клиент N].[Клиент N].ALLMEMBERS, Instr( [Клиент].[Клиент N].currentmember.Properties( 'Member_Caption' ), 'NN00000000' ) <> 1 ) )
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Изменение запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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