Вопрос:

3 таблицы в выпадающий список

sql ms-access select subtraction

38 просмотра

1 ответ

1 Репутация автора

У меня есть 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 Seller] = Products.CID)) как exSumofTrans) '.

Автор: ShaneAR15 Источник Размещён: 12.06.2019 02:27

Ответы (1)


0 плюса

2853 Репутация автора

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

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
Автор: SunKnight0 Размещён: 12.06.2019 06:28
Вопросы из категории :
32x32