powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка всех пар Дата-Клиент
13 сообщений из 13, страница 1 из 1
Выборка всех пар Дата-Клиент
    #39939048
Soilwork
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, как правильно составить запрос. У меня есть таблица, в которой три поля: дата, компания и сумма. И вот из этого пытаюсь сделать таблицу, где бы каждой дате соответствовал каждый клиент, даже если в эту дату по этому клиенту не было суммы (будет показывать null).
Кажется, должно быть просто, но я застрял ) Делал так:
SELECT t.* FROM [Выгрузка] as t LEFT JOIN (SELECT DISTINCT [Клиент] FROM [Выгрузка]) as t1 ON t.[Клиент] = t1.[Клиент]
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939052
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
SELECT *
FROM ( SELECT DISTINCT [Клиент] FROM [Выгрузка] ) t1
CROSS JOIN ( SELECT DISTINCT [Дата] FROM [Выгрузка] ) t2
LEFT JOIN [Выгрузка] t3 ON t1.[Клиент] = t3.[Клиент]
                       AND t2.[Дата] = t3.[Дата]


ну а если есть дата, которая нужна, но отсутствует в таблице вообще - тогда генери список таких дат в CTE вместо подзапроса t2.
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939055
Soilwork
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, попытаюсь это теперь преобразовать в запросе в VBA. Там нет кросс дожина (
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939060
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Soilwork
... в VBA ... нет кросс дожина (


Кросс джой в ВБА есть :)

Модератор: Не надо паясничать
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939063
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Код: sql
1.
2.
3.
4.
5.
SELECT *
FROM ( SELECT DISTINCT [Клиент] FROM [Выгрузка] ) t1
CROSS JOIN ( SELECT DISTINCT [Дата] FROM [Выгрузка] ) t2
LEFT JOIN [Выгрузка] t3 ON t1.[Клиент] = t3.[Клиент]
                       AND t2.[Дата] = t3.[Дата]


ну а если есть дата, которая нужна, но отсутствует в таблице вообще - тогда генери список таких дат в CTE вместо подзапроса t2.


Это не совсем то, что ему надо.

Проблема здесь

Код: sql
1.
SELECT DISTINCT [Дата] FROM [Выгрузка]



Надо не существующие даты выбрать, а взять или сгенерить календарь и выбрать все даты непрерывно. И тогда для каждого клиента гарантированно будут все даты.

А LEFT JOIN подтянет значения туда, где они есть и оставить null там где их нет.
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939064
Soilwork
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм, у меня не принимает, выдаёт ошибку. Делаю в Excel запрос в файл Access.
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939065
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Soilwork
Делаю в Excel запрос в файл Access.
"А вопрос задаю на форуме MSSQL. Я классный?"
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939066
Soilwork
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич, а есть отдельно под Excel? Там по-моему есть все кроме него )
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939072
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Soilwork,

Есть форум по офису: https://www.sql.ru/forum/ms-office
Есть форум по Access: https://www.sql.ru/forum/access
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939086
Soilwork
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич, спасибо и извиняюсь, что не по адресу.
Тему продублировал в офисе, эту можно закрыть.
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939088
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Soilwork
Делаю в Excel запрос в файл Access.
Да ещё поди DAO? ну используй картезианку, или (DAO, пожалуй, обидится на LEFT JOIN к картезианке) INNER JOIN ON 1=1.
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939118
Soilwork
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, ADO. По моим наблюдениям, там нельзя составлять последовательные соединения, только вложенные. Оба этих метода не работают ) Либо у меня кривые руки
...
Рейтинг: 0 / 0
Выборка всех пар Дата-Клиент
    #39939121
Soilwork
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin, нет, как раз нужны существующие, которые хоть у одного клиента есть. Только у каких-то клиентов они по итогу будут пустые.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка всех пар Дата-Клиент
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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