soundie
@soundie
Преподаватель, программист, писатель

Как сделать фильтрацию в первой таблице, на основе данных в третьей (через вторую)?

Есть три таблицы:

Таблица1 (ИД, Название)
Таблица2 (ИД, Название, Таблица1.ИД)
Таблица3 (ИД, Название, Количество, Таблица2.ИД)

Первая таблица связана со второй: 1 к ∞
Вторая таблица связана с третьей: 1 к ∞

Задачи две:

1. Вывести одно значение: кол-во строк в Таблице1, где в Таблице3 значение поля Количество будет больше нуля.

2. Вывести таблицу с двумя столбцами:
а) Таблица1.Название
б) Сумма значений поля Таблица3.Количество, которые относятся к каждой из строк Таблицы1.
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
soundie
@soundie Автор вопроса
Преподаватель, программист, писатель
До решений дошел сам (хотя до конца не уверен):

SELECT Таблица1.Название, SUM(Таблица3.Количество) as 'count'
FROM Таблица1, Таблица2, Таблица3
WHERE (Таблица3.Таблица2_ИД = Таблица2.ИД) AND
      (Таблица2.Таблица1_ИД = Таблица1.ИД) AND
	    count > 0
GROUP BY Таблица1.ИД

Вторая задача:

SELECT Таблица1.Название, SUM(Таблица3.Количество)
FROM Таблица1, Таблица2, Таблица3
WHERE (Таблица3.Таблица2_ИД = Таблица2.ИД) AND 
      (Таблица2.Таблица1_ИД = Таблица1.ИД)
GROUP BY Таблица1.ИД
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы