1

Тема: Sql запит, потрібна допомога

Всім доброї ночі, є проблема з запитом. Опису ситуацію: є дві таблиці деталі і продаж, в таблиці є текстове поле назва деталі, я створю зв'язок і переношу це поле в таблицю продаж, проблема виникає при створені запиту, адже при перенесені він вже рахується як числове і посилається на код деталі, а відображається як текст. Як правильно зробити запит, щоб я міг при написанні назви деталі вибрати коли її продали, постійно виникають помилки або з виразами, або з типами. Дякую за допомогу!

2

Re: Sql запит, потрібна допомога

Дуже сумбурно. Було би бажано описати структури обох таблиць. У вас зв'язок між таблицями по текстовому полю чи що? Хто він рахується як числове і посилається на код деталі, а відображається як текст і чому, я не зміг зрозуміти взагалі.

Можу припустити таку структуру, з того що я зрозумів:

parts:
    int id
    string name

sells:
    int id
    int part_id
    datetime sell_date
    float price

Оскільки ви не сказали, що за SQL-сервер, я типи навожу умовно.
Тож, коли ви додаєте продаж у таблицю продажів sells, то ви заносите в поле part_id посилання на деталь з таблиці деталей parts. Щоб отримати повну інформацію про продаж з назвою деталі, вам потрібно виконати наступний запит:

SELECT `s`.*, `p`.`name`  FROM `sells` AS `s` LEFT JOIN `parts` AS `p` ON `s`.`part_id` = `p`.`id`

3

Re: Sql запит, потрібна допомога

flatliner написав:

Дуже сумбурно. Було би бажано описати структури обох таблиць. У вас зв'язок між таблицями по текстовому полю чи що? Хто він рахується як числове і посилається на код деталі, а відображається як текст і чому, я не зміг зрозуміти взагалі.

Можу припустити таку структуру, з того що я зрозумів:

parts:
    int id
    string name

sells:
    int id
    int part_id
    datetime sell_date
    float price

Оскільки ви не сказали, що за SQL-сервер, я типи навожу умовно.
Тож, коли ви додаєте продаж у таблицю продажів sells, то ви заносите в поле part_id посилання на деталь з таблиці деталей parts. Щоб отримати повну інформацію про продаж з назвою деталі, вам потрібно виконати наступний запит:

SELECT `s`.*, `p`.`name`  FROM `sells` AS `s` LEFT JOIN `parts` AS `p` ON `s`.`part_id` = `p`.`id`

Так, звязок між назвами, він працює як поле підстановки.

Запит я написав такий

SELECT З.[Назва деталі], З.[Дата видачі], З.[Кому видано], З.[Кількість затребувано], З.[Ціна за одиницю], З.[Повна вартість списання]
FROM [Зведена/Списання] AS З 
INNER JOIN [Деталі/Склад] AS Д ON З.[Код деталі] = Д.[Код деталі]
WHERE Д.[Назва деталі] = 'Ваша_назва_деталі';

4

Re: Sql запит, потрібна допомога

Це що, якийсь Access чи що? Я з таким не стикався...

Не зрозумів, чому [Назва деталі] в SELECT йде з аліасом 'З', хіба ж вона не в таблиці [Деталі/Склад] знаходиться?

5

Re: Sql запит, потрібна допомога

flatliner написав:

Це що, якийсь Access чи що? Я з таким не стикався...

Не зрозумів, чому [Назва деталі] в SELECT йде з аліасом 'З', хіба ж вона не в таблиці [Деталі/Склад] знаходиться?

Аліс можна видалити, він особливої погоди не робить, тут питання як правильно зробити запит

6

Re: Sql запит, потрібна допомога

Доки ви не продемонструєте структуру таблиць, подальші розмови безпредметні...

Подякували: leofun011

7

Re: Sql запит, потрібна допомога

flatliner написав:

Доки ви не продемонструєте структуру таблиць, подальші розмови безпредметні...

Як прикріпити скріни?

8

Re: Sql запит, потрібна допомога

Reynor написав:
flatliner написав:

Доки ви не продемонструєте структуру таблиць, подальші розмови безпредметні...

Як прикріпити скріни?

Не треба кріпити скріни. Треба опублікувати код (на приклад Create Table), який буде містити інфо достатню для генерації таблиць і відповідних запитів.

Якщо реально треба демонструвати знимки, то для того є ImgBB.

Приклад користання
[img=alt-text]https://i.ibb.co/wBgNN5s/to-ty-sia-znushchaiesh-244x240.jpg[/img]
Результат

alt-text

Подякували: flatliner1

9

Re: Sql запит, потрібна допомога

leofun01 написав:
Reynor написав:
flatliner написав:

Доки ви не продемонструєте структуру таблиць, подальші розмови безпредметні...

Як прикріпити скріни?

Не треба кріпити скріни. Треба опублікувати код (на приклад Create Table), який буде містити інфо достатню для генерації таблиць і відповідних запитів.

Якщо реально треба демонструвати знимки, то для того є ImgBB.

Приклад користання
[img=alt-text]https://i.ibb.co/wBgNN5s/to-ty-sia-znushchaiesh-244x240.jpg[/img]
Результат

alt-text

В ацесі це проблемно зробити

10

Re: Sql запит, потрібна допомога

Reynor написав:

В ацесі це проблемно зробити

Зараз погода покращилася і штатні провидці цього форуму терміново пішли у відпустку.

На жаль, зважаючи на вищесказане, для продовження дискусії вам доведеться відкрити паперовий блокнотик, взяти ручку і занотувати структуру таблиць аби згодом передати її нам тут. Вибачте за тимчасові незручності.

11

Re: Sql запит, потрібна допомога

Reynor написав:
leofun01 написав:

опублікувати код (на приклад Create Table)... для генерації таблиць і відповідних запитів.

В ацесі це проблемно зробити

На сторінках підтримки Microsoft Office Access пишуть :

У режимі конструктора запиту створіть вибірковий запит, а потім змініть його, доки він не поверне потрібні записи. Ви можете вибрати дані з кількох таблиць і в реальному сенсі де нормалізувати дані. Наприклад, можна розмістити дані клієнта, перевізника та постачальника в одній таблиці, чого б ви не робили у виробничій базі даних із належним чином нормалізованими таблицями. Також можна використовувати умови в запиті, щоб додатково настроїти або звузити набір результатів.

Після прочитаного я буду рекомендувати перейти на OpenOffice Base, там хоча би для людин зроблено, хоть і з глюками іноді. А ше краще перейти на якусь ше популярнішу базу.