标题:请教 SQL中Select语句运用
只看楼主
FangASU
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2016-5-15
得分:0 
回复 10楼 tlliqi
请问这样的题只能用 not in 吗?我是初学者,老师没有讲过not in的用法..请问还有其他的方法吗?
2016-06-05 08:38
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:4 
以下是引用sdta在2016-6-4 23:17:37的发言:

select 客户号,姓名,性别,联系电话 from customers where 客户号 not in (select 客户号 from orders where year(签订日期)=2008 and month(签订日期)=2) order by 客户号 desc into table tableone
就本题来说,9楼和10都可以,
但9楼适用强,由于老师故意说2月,就意味着2月有29天和28天;但如果换了个日期条件,9楼就很容易变通,即
nYear=2009
nMonth=3
select 客户号,姓名,性别,联系电话 from customers where 客户号 not in (select 客户号 from orders where year(签订日期)=nYear and month(签订日期)=nMonth) order by 客户号 desc into table tableone
2016-06-05 10:28
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:4 
以下是引用FangASU在2016-6-5 08:38:47的发言:

请问这样的题只能用 not in 吗?我是初学者,老师没有讲过not in的用法..请问还有其他的方法吗?

第1题逻辑最严谨的方法就是用子查询了:
SELECT 客户号,姓名,性别,联系电话 FROM Customers ;
   WHERE 客户号 NOT IN ;
      (SELECT 客户号 FROM Orders WHERE BETWEEN(签订日期,{^2008-02-01},{^2008-02-29})) ;
   ORDER BY 客户号 DESC ;
   INTO TABLE TableOne

但不知道你们老师是否教过子查询,或者说你是否上课时听讲到了子查询的知识。
   
2016-06-05 10:38
FangASU
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2016-5-15
得分:0 
回复 13楼 taifu945
谢谢,可能是我没有听到吧
2016-06-05 10:56
FangASU
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2016-5-15
得分:0 
谢谢大家!
2016-06-05 10:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-465594-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.325212 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved