Студопедия


Авиадвигателестроения Административное право Административное право Беларусии Алгебра Архитектура Безопасность жизнедеятельности Введение в профессию «психолог» Введение в экономику культуры Высшая математика Геология Геоморфология Гидрология и гидрометрии Гидросистемы и гидромашины История Украины Культурология Культурология Логика Маркетинг Машиностроение Медицинская психология Менеджмент Металлы и сварка Методы и средства измерений электрических величин Мировая экономика Начертательная геометрия Основы экономической теории Охрана труда Пожарная тактика Процессы и структуры мышления Профессиональная психология Психология Психология менеджмента Современные фундаментальные и прикладные исследования в приборостроении Социальная психология Социально-философская проблематика Социология Статистика Теоретические основы информатики Теория автоматического регулирования Теория вероятности Транспортное право Туроператор Уголовное право Уголовный процесс Управление современным производством Физика Физические явления Философия Холодильные установки Экология Экономика История экономики Основы экономики Экономика предприятия Экономическая история Экономическая теория Экономический анализ Развитие экономики ЕС Чрезвычайные ситуации ВКонтакте Одноклассники Мой Мир Фейсбук LiveJournal Instagram

I. Створення запитів із двох таблиць




Дотепер створювались запити на підставі однієї таблиці. Але, як правило, запити створюються на основі декількох таблиць.

Розглянемо створення запитів з двох таблиць.

По-перше, якщо вибираються поля з різних таблиць, то в іменах полів бажано застосовувати і назву таблиці (яка записується перед ім’ям поля, після чого ставиться крапка) в якій розташовані ці поля. Якщо дві таблиці мають поля з однаковими назвами, то ця рекомендація стає обов’язковою. Інакше система не зможе визначити поле якої таблиці повинне входити у запит.

По-друге, всі таблиці повинні бути зв’язаними деяким чином (не обов’язково, щоби ці зв’язки збігалися з постійними зв’язками, які визначені для таблиць на етапі створення структури бази даних).

У найпростішому випадку зв’язок між двома таблицями встановлюються одним із способів:

FROM Таблиця1 INNER JOIN Таблиця2 ON Таблиця1.поле1= Таблиця2.поле2

FROM Таблиця1 LEFT JOIN Таблиця2 ON Таблиця1.поле1= Таблиця2.поле2

FROM Таблиця1 RIGHT JOIN Таблиця2 ON Таблиця1.поле1= Таблиця2.поле2

Операція INNER JOIN об’єднує записи із двох таблиць таким чином, що до запиту ввійдуть тільки ті записи, для яких пов’язані поля мають однакові значення.

Операція LEFT JOIN об’єднує записи із двох таблиць таким чином, що до запиту ввійдуть всі записи першої таблиці і тільки ті записи другої таблиці, для яких пов’язане поле має відповідні значення із першої таблиці.

Операція RIGHT JOIN об’єднує записи із двох таблиць таким чином, що до запиту ввійдуть всі записи другої таблиці і тільки ті записи першої таблиці, для яких пов’язане поле має відповідні значення із другої таблиці.

Слід відмітити, що зв’язок:

FROM Таблиця1 LEFT JOIN Таблиця2 ON Таблиця1.поле1= Таблиця2.поле2

еквівалентний зв’язку:

FROM Таблиця2 RIGHT JOIN Таблиця1 ON Таблиця1.поле1= Таблиця2.поле2

Умова Таблиця1.поле1= Таблиця2.поле2 є найпростішою умовою зв’язку для двох таблиць. Умова може бути складною і містити в собі декілька простих умов. Але далі будуть розглядатися тільки прості умови зв’язку двох таблиць.

5. Завдання 1: Розрахувати загальні суми тільки приходних накладних. Результати вивести за формою

Номнак СумНак
   

5.1. Рішення:

Суму для кожної із накладних можна розрахувати, використовуючи таблицю “Спецификация”. Це було зроблено в попередніх завданнях. Для того, щоб зробити розрахунки тільки для приходних накладних, треба разом з таблицею “Спецификация” застосовувати ще й таблицю “ОснСведНак”, яка містить поле “Операція”, значення якого визначає, чи є накладна приходною (значення “+”).

Таблиці “Спецификация” та “ОснСведНак” мають постійний зв’язок по полю “НомНак”. Його доцільно використовувати і для створення запиту за допомогою інструкції SELECT.

Таким чином, маємо:

SELECT Спецификация.НомНак,

Sum(Спецификация.Кол*Спецификация.Цена) AS СумНак

FROM ОснСведНак INNER JOIN Спецификация

ON ОснСведНак.НомНак = Спецификация.НомНак

WHERE ОснСведНак.Операция=“+”

GROUP BY Спецификация.НомНак;

або

SELECT Спецификация.НомНак, Sum(Кол*Цена) AS СумНак





Дата добавления: 2018-01-21; просмотров: 118; Опубликованный материал нарушает авторские права? | Защита персональных данных | ЗАКАЗАТЬ РАБОТУ


Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Да какие ж вы математики, если запаролиться нормально не можете??? 8389 - | 7309 - или читать все...

 

35.175.191.168 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.


Генерация страницы за: 0.002 сек.