- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须确定哪个客户产生的总收入最多。我设法创建了一个查询,其中列出了所有客户以及他们产生了多少收入。
SELECT P.FirstName, P.LastName, SUM(BookingFee) AS Revenue
FROM Person P, Customer C, Reservation R
WHERE C.Id = P.Id AND R.AccountNo = C.AccountNo
GROUP BY C.AccountNo
ORDER BY Revenue DESC
按降序排列,产生最多收入的客户排在最前面。但我必须让查询只生成包含最高创收客户的一行。我不太确定该怎么做,或者我现在所拥有的是否走在正确的轨道上。
任何收入都与预订表中的 BookingFee 属性相关联。
这是我的数据库的相关部分和一些示例数据
DROP DATABASE IF EXISTS flight_reservation_system_2;
CREATE DATABASE flight_reservation_system_2;
USE flight_reservation_system_2;
CREATE TABLE Person (
Id INTEGER,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Phone CHAR(10) NOT NULL,
Address VARCHAR(100) NOT NULL,
City VARCHAR(50) NOT NULL,
State VARCHAR(50) NOT NULL,
ZipCode INTEGER NOT NULL,
PRIMARY KEY (Id),
CHECK (Id > 0),
CHECK (Phone > 0),
CHECK (ZipCode > 0)
);
CREATE TABLE Employee (
Id INTEGER NOT NULL,
SSN INTEGER,
IsManager BOOLEAN NOT NULL,
StartDate DATE NOT NULL,
HourlyRate NUMERIC(10 , 2 ) NOT NULL,
PRIMARY KEY (SSN),
FOREIGN KEY (Id)
REFERENCES Person (Id),
UNIQUE (Id),
CHECK (SSN > 0),
CHECK (HourlyRate > 0)
);
CREATE TABLE Customer (
Id INTEGER NOT NULL,
AccountNo INTEGER,
CreditCardNo CHAR(16),
Email VARCHAR(50),
CreationDate DATETIME NOT NULL,
Rating INTEGER,
PRIMARY KEY (AccountNo),
FOREIGN KEY (Id)
REFERENCES Person (Id),
CHECK (Rating >= 0 AND Rating <= 10)
);
CREATE TABLE Reservation (
ResrNo INTEGER,
ResrDate DATETIME NOT NULL,
BookingFee NUMERIC(10 , 2 ) NOT NULL,
TotalFare NUMERIC(10 , 2 ) NOT NULL,
RepSSN INTEGER,
AccountNo INTEGER NOT NULL,
PRIMARY KEY (ResrNo),
FOREIGN KEY (RepSSN)
REFERENCES Employee (SSN),
FOREIGN KEY (AccountNo)
REFERENCES Customer (AccountNo),
CHECK (ResrNo > 0),
CHECK (BookingFee >= 0),
CHECK (TotalFare > BookingFee)
);
INSERT INTO Person(Id, FirstName, LastName, Phone, Address, City, State, ZipCode)
VALUES(1, 'John', 'Doe','1231231234', '123 N Fake Street', 'New York', 'New York', 10001),
(2, 'Jane', 'Smith','5555555555', '100 Nicolls Rd','Stony Brook', 'New York', 17790),
(3, 'Rick', 'Astley','3141592653', '1337 Internet Lane', 'Los Angeles', 'California', 90001);
INSERT INTO Customer(Id, AccountNo, CreditCardNo, Email, CreationDate, Rating)
VALUES(1, 2, NULL, 'jbdoe@woot.com', '2011-01-01 19:30:00', 8),
(2, 1, NULL, 'awesomejane@ftw.com', '2011-01-01 19:30:00', 5),
(3,3, NULL, 'rickroller@rolld.com', '2011-01-01 19:30:00', 2);
INSERT INTO Reservation(ResrNo, ResrDate, BookingFee, TotalFare, RepSSN, AccountNo)
VALUES(111 , '2010-01-03 19:30:00', 10, 1200.00, NULL, 1),
(222 , '2011-01-03 19:30:00', 30, 500.00,NULL, 2),
(333 , '2011-01-03 19:30:00', 25, 3333.33, NULL, 3);
最佳答案
使用LIMIT
:
LIMIT
子句可用于限制 SELECT 语句返回的行数。 LIMIT 接受一个或两个数字参数。
SELECT P.FirstName, P.LastName, SUM(BookingFee) AS Revenue
FROM Person P, Customer C, Reservation R
WHERE C.Id = P.Id AND R.AccountNo = C.AccountNo
GROUP BY C.AccountNo
ORDER BY Revenue DESC
LIMIT 1
结果:
FIRSTNAME LASTNAME REVENUE
John Doe 30
在 SQL Fiddle 中查看结果.
关于mysql - 确定哪个客户产生的收入最多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22587972/
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我知道 stackoverflow 不是谷歌产品的帮助台,但谷歌帮助台本身并没有帮助,所以也许这里的其他人也有同样的问题,可以帮助我解决。 我在过去 3 个月内在 google play 上发布了一个
我有一张像这张照片的 table : enter image description here 我想添加一个期末余额列,它将是 =sum(income)-sum(expenses) 按日期计算 (例如
我有下表: 我想: 根据 Segment 对数据进行分组。 合并收入中的值以产生该部分总收入的百分比。 在这种情况下我想要的结果是 Segment | Total Income | Rat
我有一个成员资格表,其中包含列 ID、Start_date、End_date、持续时间、值 ID | Start_date | End_date | Duration | Value | 1 | 2
我有 4 张 table : Products - to record products spending - to record expenses directv - to record subs
我是 android 开发新手。我目前正在尝试实现应用程序,查询 AdSense 收入。 我找到了 AdSense Management API v1.1 (Rev. 18) 1.7.2-beta .
我有两张 table 。我需要获取过去 30 天的总收入,其中日期和 user_id 相同。 我需要将这些查询组合成一个 JOIN SQL 查询: select * from user_revenue
我正在尝试创建一个查询,该查询允许我获得每个月比较支出、收入和储蓄的百分比值。我正在使用 MySQL 数据库。 表和查询示例: http://sqlfiddle.com/#!9/78b360/1 到目
我是一名优秀的程序员,十分优秀!