编写 SQL 查询 Workbench
Writing SQL Queries Workbench
我在编写此查询时遇到了一些问题。这是我目前所拥有的:
求出一笔交易入金最高的客户名称(包括交易金额)。
select name, amount
from customer, transaction, account
where account.owner_ssn = customer.ssn
and account.type = transaction.type
order by transaction.amount desc
limit by one;
**这是银行数据库:**
CREATE TABLE customer (
name VARCHAR(20),
sex CHAR(1),
ssn CHAR(9) NOT NULL,
phone CHAR(15),
dob DATE,
address VARCHAR(50),
PRIMARY KEY(ssn)
);
CREATE TABLE account (
number CHAR(16) UNIQUE NOT NULL,
open_date DATE,
type CHAR(20),
owner_ssn CHAR(9) NOT NULL,
PRIMARY KEY(number)
);
CREATE TABLE transaction (
id INT(20) UNIQUE NOT NULL,
amount DECIMAL(9,2),
tdate DATE,
type CHAR(10),
account_num CHAR(16),
PRIMARY KEY(id)
);
下面的查询将return单笔交易中存入金额最高的客户名称。如果有多个客户的最高金额相同,则将选择第一个存入的客户。
select name, amount
from customer c inner join account a
on c.ssn=a.owner_ssn
inner join transaction t
on a.type = t.type
order by t.amount desc, t.tdate
limit 1;
我在编写此查询时遇到了一些问题。这是我目前所拥有的:
求出一笔交易入金最高的客户名称(包括交易金额)。
select name, amount
from customer, transaction, account
where account.owner_ssn = customer.ssn
and account.type = transaction.type
order by transaction.amount desc
limit by one;
**这是银行数据库:**
CREATE TABLE customer (
name VARCHAR(20),
sex CHAR(1),
ssn CHAR(9) NOT NULL,
phone CHAR(15),
dob DATE,
address VARCHAR(50),
PRIMARY KEY(ssn)
);
CREATE TABLE account (
number CHAR(16) UNIQUE NOT NULL,
open_date DATE,
type CHAR(20),
owner_ssn CHAR(9) NOT NULL,
PRIMARY KEY(number)
);
CREATE TABLE transaction (
id INT(20) UNIQUE NOT NULL,
amount DECIMAL(9,2),
tdate DATE,
type CHAR(10),
account_num CHAR(16),
PRIMARY KEY(id)
);
下面的查询将return单笔交易中存入金额最高的客户名称。如果有多个客户的最高金额相同,则将选择第一个存入的客户。
select name, amount
from customer c inner join account a
on c.ssn=a.owner_ssn
inner join transaction t
on a.type = t.type
order by t.amount desc, t.tdate
limit 1;