Получение имени клиента по минимальному заказу из 2 таблиц - PullRequest
1 голос
/ 27 июня 2019

Я новичок в изучении SQL.У меня есть 2 таблицы.Попытка получить имя клиента и фамилию с наименьшей суммой транзакции - только эта 1 строка.Весь день пробовал разные коды, но ничего не получалось.

Таблица 1: Заказы

Customer_Id  TxnDate     Amount
-------------------------------
4001         21-Aug-18   245.99
4002         30-Jan-18    49.99
4003         15-Apr-17   204.87
4001         18-Dec-18   130.88
4004         15-May-17   198.33
4006          4-Feb-17   783.65

Таблица 2: Клиенты

Customer_Id  AcctOpenDate  CustomerFirstName  CustomerLastName
--------------------------------------------------------------
4001          7-Jan-16     John               Doe
4002         15-Apr-15     Ashley             Smith
4003         14-May-14     Carter             Jones
4004         17-Sep-16     Ika                Gaut
4005         18-Aug-14     Gray               Show
4006         25-Oct-15     Kathia             Kim

Запрос:

SELECT 
    C.CustomerFirstName, C.CustomerLastName, O.Amount 
FROM 
    Customers C 
WHERE 
    Amount = (SELECT MIN(Amount) FROM Orders) Leasttxnamt 
INNER JOIN 
    Customers C ON O.Customer_Id = C.Customer_Id;

Произошла текущая ошибка:

Сообщение 102, уровень 15, состояние 1, строка 31
Неверный синтаксис рядом с 'Leasttxnamt'

Ответы [ 3 ]

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

Попробуйте следующий запрос:

SELECT Customers.CustomerFirstName ,Customers.CustomerLastName
FROM Customers
JOIN Orders ON Customers.Customer_Id = Orders.Customer_Id
AND Orders.Amount=(
          SELECT min(Amount) FROM Orders
          WHERE Customers.Customer_Id = Orders.Customer_Id 
        )
0 голосов
/ 27 июня 2019

Попробуйте это ..

возвращает имя и фамилию клиента с наименьшей суммой транзакции

select CustomerFirstName,CustomerLastName
from Customer
where   Customer_Id in (
SELECT DISTINCT Customer_Id
from  Orders
where Amount=(select min(Amount) from orders))
0 голосов
/ 27 июня 2019

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

Это работает в большинстве баз данных.

SELECT C.CustomerFirstName, C.CustomerLastName, MIN(Amount) min_amount
FROM Customers C 
LEFT JOIN Orders O ON O.Customer_Id = C.Customer_Id
GROUP BY C.CustomerFirstName, C.CustomerLastNam
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...