Как создать выбор для каждой строки таблицы в MS SQL Server? - PullRequest
0 голосов
/ 14 января 2019

Предположим, у меня есть три таблицы:

enter image description here

enter image description here

enter image description here

Как выбрать CODE, который IS ACTIVE (= 1) из таблицы продуктов, LINE NUM и DOCUMENT ID, которые существуют в строках таблицы и взяты из документа типа KYT

например, вывод должен выглядеть примерно так:

enter image description here

Очевидно, это должно начаться как

SELECT DOCUMENT ID
FROM [TABLE DOCUMENT]
WHERE TYPE='KYT'

А потом для каждого ряда сделайте что-нибудь. Я не знаю, как это сделать

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Добавлены строки JOIN для объединения трех таблиц:

SELECT [PT].[CODE], [TL].[LINE NUM], [TD].[DOCUMENT ID]
FROM [TABLE DOCUMENT] as TD
JOIN [TABLE LINES]    as TL
    on TL.[DOCUMENT ID] = TD.[DOCUMENT ID]
JOIN [PRODUCTS TABLE] as PT
    on PT.[PRODUCTS ID] = TL.[PRODUCT ID]
WHERE TYPE='KYT' AND PT.ISACTIVE = 1
0 голосов
/ 14 января 2019

То, что вы ищете, называется JOIN. Ниже приведено соединение, которое выбирает все строки из всех трех таблиц. Поиграйте с этим.

СОЕДИНЕНИЯ являются важной концепцией MUST KNOW для систем управления базами данных Relation. Они могут быть прямыми, как в этом примере, или могут быть довольно дикими в зависимости от того, что вам нужно сделать. Если вы собираетесь продолжить работу с SQL, вам нужно разбираться в них.

SELECT * 
FROM products p
INNER JOIN lines L ON p.[Products ID]=L.[Product ID]
INNER JOIN document d ON L.[Document ID]=d.[Document ID]

Я помогу вам разобрать это, чтобы у вас было лучшее представление о том, что происходит.

FROM products p

‘p’ называется псевдонимом. Это способ сократить имена таблиц, которые вам могут понадобиться писать несколько раз, а также помогает с удобочитаемостью. Вы можете использовать псевдоним, как хотите, но я предлагаю сделать его осмысленным, как мой пример использования p для Продуктов и т. Д. И т. Д.

INNER JOIN lines L ON p.[Products ID]=L.[Product ID]

Предложение ON используется для «связывания таблиц». Обычно это отношение внешнего ключа в схеме. Столбец, к которому вы присоединяете «ON», - это тот же элемент данных. Базовый пример будет в точности таким, как этот: идентификатор продукта находится в обеих таблицах, и именно так мы связываем данные из обеих таблиц вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...