3 таблицы в выпадающий список - PullRequest
0 голосов
/ 12 июня 2019

У меня есть 3 таблицы, клиенты, продукты, транзакции.Когда мы вводим продукт, ему присваивается PID (идентификатор продукта) и CID (идентификатор клиента), которые относятся к таблицам клиентов и транзакций.Таблица транзакций имеет CID и количество.

Я пытаюсь перечислить все уникальные продукты и количества, у некоторых клиентов есть 2 списка одного и того же продукта, поэтому, если 1 - 10 единиц, а другой - 20, то этоу клиента 30 товаров a.

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

Это база данных Access.

SELECT Min(Products.PID) exPID, 
       Min(Products.[Product Name]) AS exProdName,
       Min(Products.[Seller Asking]) AS exAsking, 
       Min(Products.CID) AS exClientID, 
       Min(Transactions.[CID Seller]) AS exSellerID,     
       Sum(Products.Quantity - ((SELECT Transactions.[No Units], Clients.Name, 
                                        Transactions.[CID Seller], Products.CID 
                                 FROM Transactions, Clients, Products 
                                 WHERE Transactions[CID Seller]=Products.CID)
           ) AS exSumofTrans),     
       Min(Clients.Name) AS exClientName, 
       Min(Transactions.[CID Seller]) AS exSeller
FROM Transactions, Clients, Products
WHERE (((Transactions.[CID Seller])=[Products].[CID] 
  AND   (Products.[PID])=([Transactions].[PID])));

Первая проблема здесь - это ошибка на внутреннейвыберите.

Ошибка говорит:

'Синтаксическая ошибка в выражении запроса (Sum (Products.Quantity - ((Выберите транзакции. [Без единиц], Clients.Name, Транзакции.[Продавец CID], Products.CID FROM Транзакции, Клиенты, Продукты, где транзакции [Продавец CID] = Products.CID)) как exSumofTrans) '.

1 Ответ

0 голосов
/ 12 июня 2019

Я должен был сделать некоторые предположения, основываясь на том, что, похоже, вы пытаетесь сделать, и у меня нет возможности проверить это, поэтому может потребоваться дальнейшая настройка, но это поможет вам выбрать правильный путь:

SELECT Products.PID AS exPID,
    FIRST(Products.[Product Name]) AS exProdName,
    FIRST(Products.[Seller Asking]) AS exAsking,
    FIRST(Products.CID) AS exClientID,
    SUM(Products.Quantity)-FIRST(T.exNoUnits) AS exSumofTrans,
    T.exSellerID,
    FIRST(Clients.Name) AS exClientName
FROM (Products  
    INNER JOIN (SELECT [CID Seller] AS exSellerID, PID, SUM([No Units]) AS exNoUnits
        FROM Transactions GROUP BY [CID Seller], PID) AS T
        ON T.PID=Products.PID)
    INNER JOIN Clients ON T.exSellerID=Clients.CID
GROUP BY Products.PID, T.exSellerID
...