Sql 如何编写嵌套查询以显示信用额度低于同一表中cit中客户的客户名称和信用额度?
以下是我的客户表:Sql 如何编写嵌套查询以显示信用额度低于同一表中cit中客户的客户名称和信用额度?,sql,sql-server-2008,subquery,Sql,Sql Server 2008,Subquery,以下是我的客户表: create table CUSTOMERS (CustID char(6) unique Not null, Name varchar(45), Address varchar(40), City varchar(30), State varchar(2), Zip varchar(9), AreaCode char
create table CUSTOMERS
(CustID char(6) unique Not null,
Name varchar(45),
Address varchar(40),
City varchar(30),
State varchar(2),
Zip varchar(9),
AreaCode char(3),
Phone varchar (9),
RepID char(4) not null,
CreditLimit decimal(9,2),
Primary key(CustID),
Foreign key(RepID) References EMPLOYEES(EmpID));
insert into CUSTOMERS values (100,'Jocksports','345 Viewridge','Belmont','CA','96711',415,'598-6609',7844,5000);
insert into CUSTOMERS values (101,'TKB Sport Shop','490 Boli Rd.','Redwood City','CA','94061',415,'368-1223',7521,10000);
insert into CUSTOMERS values (102,'Vollyrite','9722 Hamilton','Burlingame','CA','95133',415,'644-3341',7654,7000);
insert into CUSTOMERS values (103,'Just Tennis','Hillview Mall','Burlingame','CA','97544',415,'677-9312',7521,3000);
insert into CUSTOMERS values (104,'Every Mountain','574 Surry Rd.','Cupertino','CA','93301',408,'996-2323',7499,10000);
insert into CUSTOMERS values (105,'K + T Sports','3476 El Paseo','Santa Clara','CA','91003',408,'376-9966',7844,5000);
insert into CUSTOMERS values (106,'Shape Up','908 Sequoia','Palo Alto','CA','94301',415,'364-9777',7521,6000);
insert into CUSTOMERS values (107,'Womens Sports','Valco Village','Sunnyvale','CA','93301',408,'967-4398',7499,10000);
insert into CUSTOMERS values (108,'North Woods Fitness Supply Center','98 Lone Pine Way','Hibbing','MN','55649',612,'566-9123',7844,8000);
以下是我需要修改的问题:
select name, creditlimit
from CUSTOMERS
where name in
(select name
from CUSTOMERS
where City = 'sunnyvale');
我在任何地方都找不到回答以下提示的示例:
编写嵌套查询以显示信用额度低于Sunnyvale中客户的客户名称和信用额度。首先列出最低信用额度。试试这个
SELECT Name,CREDITLIMIT FROM CUSTOMERS
WHERE CREDITLIMIT < (SELECT CREDITLIMIT FROM CUSTOMERS
WHERE CITY = 'Sunnyvale')
ORDER BY CREDITLIMIT
如果Sunnyvale有多个客户,您可以使用MIN或MAX
SELECT Name,CREDITLIMIT FROM CUSTOMERS
WHERE CREDITLIMIT < (SELECT MAX(CREDITLIMIT) FROM CUSTOMERS
WHERE CITY = 'Sunnyvale')
ORDER BY CREDITLIMIT
试试这个
SELECT Name,CREDITLIMIT FROM CUSTOMERS
WHERE CREDITLIMIT < (SELECT CREDITLIMIT FROM CUSTOMERS
WHERE CITY = 'Sunnyvale')
ORDER BY CREDITLIMIT
如果Sunnyvale有多个客户,您可以使用MIN或MAX
SELECT Name,CREDITLIMIT FROM CUSTOMERS
WHERE CREDITLIMIT < (SELECT MAX(CREDITLIMIT) FROM CUSTOMERS
WHERE CITY = 'Sunnyvale')
ORDER BY CREDITLIMIT
尝试上面的查询
以下是演示:
尝试上面的查询
以下是演示:
此查询将按您想要的顺序生成
SELECT CreditLimit, Name
FROM CUSTOMERS
WHERE CreditLimit < (
SELECT CreditLImit
FROM CUSTOMERS
WHERE City = 'sunnyvale' )
ORDER BY CreditLimit
此查询将按您想要的顺序生成
SELECT CreditLimit, Name
FROM CUSTOMERS
WHERE CreditLimit < (
SELECT CreditLImit
FROM CUSTOMERS
WHERE City = 'sunnyvale' )
ORDER BY CreditLimit
如果Sunnyvale有多个客户,您需要从Sunnyvale获得最低信用额度并与其他客户进行比较吗?啊…我应该在不知道Sunnyvale只有一个客户的情况下进行此查询。这样我就可以得到桑尼维尔的最低工资了。但我仍然对语法感到困惑。我在我的书中找不到一个好的例子,在网上也找不到一个好的例子。事实上,根据它的提示,Sunnyvale的客户可能会说我已经知道Sunnyvale只有一个客户。但是我不知道。如果森尼维尔有多个客户,你需要从森尼维尔获得最低信用额度并与其他客户进行比较吗?啊……我应该在不知道森尼维尔只有一个客户的情况下进行查询。这样我就可以得到桑尼维尔的最低工资了。但我仍然对语法感到困惑。我在我的书中找不到一个好的例子,在网上也找不到一个好的例子。事实上,根据它的提示,Sunnyvale的客户可能会说我已经知道Sunnyvale只有一个客户。但是我不知道。我也可以区分,对吗?…没关系,你不是在说重复。我也可以区分,对吗?…没关系,你不是在说重复。随时:如果你想更改顺序,只需将order BY desc添加到查询中,它会以降序显示结果。随时:如果你想更改顺序,只需将orderbydesc添加到查询中,它就会以降序显示结果。