XRushdy Ответов: 1

Получение нормализованных данных


У меня есть таблицы продаж, в которых хранятся все операции продажи
я знаю, что нехорошо хранить каждую строку данных о продаже и давать ей название продукта или имя клиента в виде строк, которые будут использовать большой размер данных
я должен сохранить операцию продажи с идентификатором клиента как int
но что делать при извлечении данных с помощью select query?
он возвращает идентификатор клиента, но мне нужен запрос, чтобы вернуть имя клиента, как оно хранится в таблице клиентов
каков наилучший запрос для этого?

Что я уже пробовал:

это заявления о присоединении, объединении или что-то еще?
через 1 год(например) появится огромное количество строк, связанных с клиентами и названиями продуктов по идентификатору
какой оператор я должен использовать для обработки такого огромного количества строк?

0x01AA

ВЫБИРАТЬ
Продает.Х,
Продает.Г,
Продает.З,
Клиента.Идентификатор,
КЛИЕНТ.ИМЯ
ОТ ПРОДАЕТ
ЛЕВОЕ СОЕДИНЕНИЕ КЛИЕНТ НА КЛИЕНТЕ.ID = ПРОДАЕТ.ИДЕНТИФИКАТОР КЛИЕНТА
ГДЕ...

Maciej Los

Мы не можем читать в вашем сознании или непосредственно с вашего экрана. Вы должны предоставить более подробную информацию...

1 Ответов

Рейтинг:
0

Maciej Los

Пожалуйста, сначала прочтите комментарии к этому вопросу.

Я бы предложил начать с основ: Учебник: написание инструкций Transact-SQL | Microsoft Docs[^]

Как Бруно (0x01AA[^]) упомянутый в комментарии к вопросу, чтобы получить данные, вы должны использовать инструкция Select[^]. Вы можете "связать" 2 таблицы с помощью присоединяется[^], видеть: Визуальное представление SQL-соединений[^]

Таким образом, пример оператора SELECT может выглядеть следующим образом:

SELECT so.OperationId, so.Stuff, so.ClientId, ci.ClientName
FROM SellOperation AS so INNER JOIN Clients AS ci ON so.ClientId = ci.ClientId
WHERE so.ClientId = @ClientId


Удачи вам!