你在SQL Server 2005/2008数据库中创建了如下两个表:
CREATE TABLE 雇员表
( 雇员代号 int IDENTITY(10001,1) PRIMARY KEY NONCLUSTERED,
雇员姓名 varchar(20) NOT NULL,
通信地址 varchar(200) NULL
)
CREATE TABLE 定单表
( 定单号 int IDENTITY(1,1) PRIMARY KEY,
雇员代号 int NOT NULL,
客户代号 int NOT NULL,
订购日期 datetime NOT NULL,
订购金额 money NOT NULL
)
你需要获得2003年9月1日每个雇员的最高的一笔销售金额,要求列出“雇员代号”、“雇员姓名”、“订购日期”、最高的“订购金额”。下面哪个语句能完成该功能?
单项选择题
SELECT a.雇员代号,a.雇员姓名,b.订购日期,b.订购金额
FROM 雇员表 AS a LEFT OUTER JOIN 定单表 AS b
ON a.雇员代号 = b.雇员代号
WHERE b.订购日期 = '09/01/2003'
AND 订购金额 IN (SELECT MAX(订购金额) FROM 定单表)
SELECT a.雇员代号,a.雇员姓名,b.订购日期,MAX(订购金额)
FROM 雇员表 AS a LEFT OUTER JOIN 定单表 AS b
ON a.雇员代号 = b.雇员代号 AND b.订购日期 = '09/01/2003'
GROUP BY a.雇员代号,a.雇员姓名,b.订购日期
SELECT a.雇员代号,a.雇员姓名,b.订购日期,MAX(订购金额)
FROM 雇员表 AS a INNER JOIN 定单表 AS b
ON a.雇员代号 = b.雇员代号
WHERE b.订购日期 = '09/01/2003'
GROUP BY a.雇员代号,a.雇员姓名,b.订购日期,b.定单号
SELECT a.雇员代号,a.雇员姓名,b.订购日期,MAX(订购金额)
FROM 雇员表 AS a INNER JOIN 定单表 AS b
ON a.雇员代号 = b.雇员代号
WHERE b.订购日期 = '09/01/2003'
AND 订购金额 IN (SELECT MAX(订购金额) FROM 定单表)
答案:B
【原题】:你在SQL Server 2005/2008数据库中创建了如下两个表:
CREATE TABLE 雇员表
( 雇员代号 int IDENTITY(10001,1) PRIMARY KEY NONCLUSTERED,
雇员姓名 varchar(20) NOT NULL,
通信地址 varchar(200) NULL
)
CREATE TABLE 定单表
( 定单号 int IDENTITY(1,1) PRIMARY KEY,
雇员代号 int NOT NULL,
客户代号 int NOT NULL,
订购日期 datetime NOT NULL,
订购金额 money NOT NULL
)
你需要获得2003年9月1日每个雇员的最高的一笔销售金额,要求列出“雇员代号”、“雇员姓名”、“订购日期”、最高的“订购金额”。下面哪个语句能完成该功能?
单项选择题
SELECT a.雇员代号,a.雇员姓名,b.订购日期,b.订购金额
FROM 雇员表 AS a LEFT OUTER JOIN 定单表 AS b
ON a.雇员代号 = b.雇员代号
WHERE b.订购日期 = '09/01/2003'
AND 订购金额 IN (SELECT MAX(订购金额) FROM 定单表)
SELECT a.雇员代号,a.雇员姓名,b.订购日期,MAX(订购金额)
FROM 雇员表 AS a LEFT OUTER JOIN 定单表 AS b
ON a.雇员代号 = b.雇员代号 AND b.订购日期 = '09/01/2003'
GROUP BY a.雇员代号,a.雇员姓名,b.订购日期
SELECT a.雇员代号,a.雇员姓名,b.订购日期,MAX(订购金额)
FROM 雇员表 AS a INNER JOIN 定单表 AS b
ON a.雇员代号 = b.雇员代号
WHERE b.订购日期 = '09/01/2003'
GROUP BY a.雇员代号,a.雇员姓名,b.订购日期,b.定单号
SELECT a.雇员代号,a.雇员姓名,b.订购日期,MAX(订购金额)
FROM 雇员表 AS a INNER JOIN 定单表 AS b
ON a.雇员代号 = b.雇员代号
WHERE b.订购日期 = '09/01/2003'
AND 订购金额 IN (SELECT MAX(订购金额) FROM 定单表)