利用子查询解决复杂sql问题

简介: 在实际编写sql的过程中,我们往往会遇到一些比较复杂的sql场景,这个时候,我们 利用自查询可以解决.   问题: 返回在每月最后实际订单日期发生的订单   T-sql代码 -- 返回在每月最后实际订单日期发生的订单-- (Orders placed on last actual...

在实际编写sql的过程中,我们往往会遇到一些比较复杂的sql场景,这个时候,我们

利用自查询可以解决.

 

问题: 返回在每月最后实际订单日期发生的订单

 

img_405b18b4b6584ae338e0f6ecaf736533.gif T-sql代码
--  返回在每月最后实际订单日期发生的订单
--
 (Orders placed on last actual order date of the month)

SELECT  OrderID, CustomerID, EmployeeID, OrderDate
FROM  dbo.Orders
WHERE  OrderDate  IN
  (
SELECT   MAX (OrderDate)
   
FROM  dbo.Orders
   
GROUP   BY   CONVERT ( CHAR ( 6 ), OrderDate,  112 ))
order   by  OrderDate
GO

 

 

返回结果:

 

OrderID     CustomerID EmployeeID  OrderDate
----------- ---------- ----------- -----------------------
10269       WHITC      5           1996-07-31 00:00:00.000
10294       RATTC      4           1996-08-30 00:00:00.000
10317       LONEP      6           1996-09-30 00:00:00.000
10343       LEHMS      4           1996-10-31 00:00:00.000
10368       ERNSH      2           1996-11-29 00:00:00.000
10399       VAFFE      8           1996-12-31 00:00:00.000
10432       SPLIR      3           1997-01-31 00:00:00.000
10460       FOLKO      8           1997-02-28 00:00:00.000
10461       LILAS      1           1997-02-28 00:00:00.000
10490       HILAA      7           1997-03-31 00:00:00.000
10491       FURIB      8           1997-03-31 00:00:00.000
10522       LEHMS      4           1997-04-30 00:00:00.000
10553       WARTH      2           1997-05-30 00:00:00.000
10554       OTTIK      4           1997-05-30 00:00:00.000
10583       WARTH      2           1997-06-30 00:00:00.000
10584       BLONP      4           1997-06-30 00:00:00.000
10616       GREAL      1           1997-07-31 00:00:00.000
10617       GREAL      4           1997-07-31 00:00:00.000
10650       FAMIA      5           1997-08-29 00:00:00.000
10686       PICCO      2           1997-09-30 00:00:00.000
10687       HUNGO      9           1997-09-30 00:00:00.000
10725       FAMIA      4           1997-10-31 00:00:00.000
10758       RICSU      3           1997-11-28 00:00:00.000
10759       ANATR      3           1997-11-28 00:00:00.000
10806       VICTE      3           1997-12-31 00:00:00.000
10807       FRANS      4           1997-12-31 00:00:00.000
10861       WHITC      4           1998-01-30 00:00:00.000
10862       LEHMS      8           1998-01-30 00:00:00.000
10914       QUEEN      6           1998-02-27 00:00:00.000
10915       TORTU      2           1998-02-27 00:00:00.000
10916       RANCH      1           1998-02-27 00:00:00.000
10987       EASTC      8           1998-03-31 00:00:00.000
10988       RATTC      3           1998-03-31 00:00:00.000
10989       QUEDE      2           1998-03-31 00:00:00.000
11060       FRANS      2           1998-04-30 00:00:00.000
11061       GREAL      4           1998-04-30 00:00:00.000
11062       REGGC      4           1998-04-30 00:00:00.000
11063       HUNGO      3           1998-04-30 00:00:00.000
11074       SIMOB      7           1998-05-06 00:00:00.000
11075       RICSU      8           1998-05-06 00:00:00.000
11076       BONAP      4           1998-05-06 00:00:00.000
11077       RATTC      1           1998-05-06 00:00:00.000

(42 row(s) affected)

 

 

目录
相关文章
|
4月前
|
SQL 数据库
SQL Server 连接查询和子查询
SQL Server 连接查询和子查询
89 0
|
7月前
|
SQL
sql语言之子查询语句
sql语言之子查询语句
|
3月前
|
SQL Oracle 关系型数据库
七、SQL子查询
七、SQL子查询
32 0
|
9月前
|
SQL
SQL进阶之疯狂的子查询
今天我们不谈子查询的执行效率,只谈子查询功能。对于SQL语句来说,编程开发人员应该都不会陌生,其实各种复杂的逻辑最终落地也就是那么几个基本的招式,增删改查,然而我们经常听到武功招式中又各种连招,那就是了,子查询就是这么个意思。很多SQL简单查询完成不了的查询,子查询都可以很疯狂地完成。当然有的需要一个子查询就够了,有的甚至可能需要嵌套多个子查询来完成。
54 0
SQL进阶之疯狂的子查询
|
9月前
|
SQL 数据库
SQL中字段跟子查询结果判等,子查询结果为null的处理办法
前言:今天写功能的时候遇到一个问题,SQL中字段跟子查询结果判等,子查询结果为null,查询不到数据
|
9月前
|
SQL Oracle 关系型数据库
update时 单行子查询返回多个行 SQL 错误 [1427] 处理方案
我遇到此错误是在多表关联update的
396 0
|
SQL Oracle 关系型数据库
【SQL系列】标量子查询
嵌套在 SELECT 子句中的 SELECT 子句被称为标量子查询,它们只能返回一个值。
244 0
|
SQL 关系型数据库 MySQL
SQL实战:子查询的应用实例
SQL实战:子查询的应用实例
81 0
|
SQL 关系型数据库 MySQL
SQL优化--关联子查询的前世今生
SQL优化--关联子查询的前世今生
186 0
SQL优化--关联子查询的前世今生
|
SQL 数据库
SQL Sever 子查询与嵌套查询
作者主页:https://www.couragesteak.com/
SQL Sever 子查询与嵌套查询