Как запросить SQLIte для создания представления?Больше информации в описании - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть две таблицы, т.е. Item_Details и Item_Qty, как показано на рисунке.Item_Details содержит общие сведения об элементе, а Item_Qty содержит количество (есть несколько записей одного и того же элемента).

Моя цель
Я хочу создать представление, которое содержит все столбцы из Item_Details, а также дополнительный столбец с именем Qty.Этот столбец Qty должен содержать сумму всех количеств конкретного элемента из Item_Qty.Смотрите изображение для ясности.Поскольку я неопытный в sqlite, я не знаю, как выполнить такой сложный запрос.Спасибо
enter image description here

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Предполагая, что вы знакомы с основами SQL (а если нет, то в Интернете есть масса ресурсов), вам нужно всего лишь разбить проблему на куски, и вы увидите, что это не так.сложный на всех.

  • SELECT: столбцы, которые вы хотите получить в результате.Последний столбец, Qty, представляет собой сумму величин из таблицы Item_Qty.Вам понадобится агрегатная функция SUM, документ находится здесь https://www.sqlite.org/lang_aggfunc.html#sumunc.
  • FROM: Предложение from будет содержать две таблицы, используемые в представлении.Подсказка: вы можете использовать псевдонимы таблиц в предложении FROM, что, вероятно, является хорошей идеей в этом случае, поскольку таблицы имеют общие имена столбцов.Что-то вроде FROM item_qty iq, item_details id
  • WHERE: Это предложение, которое вы будете использовать, чтобы указать запросу, что столбец Item в одной таблице должен соответствовать столбцу Item в другой таблице.Что-то вроде WHERE iq.item = id.item
  • GROUP BY: Агрегирующая функция нуждается в предложении GROUP BY, если вы хотите «промежуточные итоги» для некоторого столбца.В этом случае вы хотите получить промежуточный итог по элементу, так что вы бы выбрали GROUP BY.

Я бы посоветовал вам поработать над запросом и получить требуемые результаты, прежде чем выполнить CREATE VIEW {name} as шаг.

0 голосов
/ 19 сентября 2018
CREATE VIEW v_item_qty AS
SELECT
    item_details.Sl_No,
    item_details.Item,
    item_details.Color,
    item_details.Size,
    SUM(item_qty.Qty) AS Qty
FROM item_details
INNER JOIN item_qty ON item_details.Item = item_qty.Item
GROUP BY item_details.Sl_No, item_details.Item, item_details.Color, item_details.Size
ORDER BY item_details.Sl_No;

Это создаст представление для отображения всех позиций, имеющих количественные записи, и агрегирует количественные значения.Если у элемента нет записи в таблице item_qty , он не будет отображаться в этом представлении.

Если вам нужно добавить элементы без количественных записей, необходимо изменить ВНУТРЕННЕЕ СОЕДИНЕНИЕ - ЛЕВОЕ СОЕДИНЕНИЕ .

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