MSSQL-联接查询练习题

1. 写一条查询语句,把所有雇员记录复制5次。涉及的表:HR.Employees表和dbo.Nums表。

1
2
3
4
5
select e.empid, e.firstname, e.lastname, n.n
from dbo.Nums n
cross join
hr.Employees e
where n.n <= 5;

2. 写一个查询,为每个雇员从2009年6月12日至2009年6月16日范围内的每天返回一行。涉及的表:HR.Employees表和dbo.Nums表。

1
2
3
4
5
6
select e.empid, DATEADD(day, n - 1, '20090612') dt
from dbo.Nums n
cross join
hr.Employees e
where n.n <= DATEDIFF(day, '20090612', '20090616')+ 1
order by e.empid;

3. 返回来自美国的客户,并为每个客户返回其订单总数和商品交易总数量。

1
2
3
4
5
6
7
8
9
10
11
select c.custid custid, count(o.orderid) numorders, sum(od.qty) totalqty
from Sales.Customers c
left join
Sales.Orders o
on o.custid = c.custid
left join
Sales.OrderDetails od
on o.orderid = od.orderid
where c.country = 'USA'
group by c.custid
order by custid

4. 返回客户及其订单信息,包括没有下过任何订单的客户。涉及的表:Sales.Customers表和Sales.Orders表。

1
2
3
4
5
select c.custid, c.companyname, o.orderid, o.orderdate
from Sales.Customers c
left join
Sales.Orders o
on c.custid = o.custid

5. 返回没有下过订单的客户。涉及的表:Sales.Customers表和Sales.Orders表。

1
2
3
4
5
6
select c.custid, c.companyname, o.orderid, o.orderdate
from Sales.Customers c
left join
Sales.Orders o
on c.custid = o.custid
where o.orderid is null

6. 返回在2007年2月12日下过订单的客户,以及他们的订单。涉及的表:Sales.Customers表和Sales.Orders表。

1
2
3
4
5
6
7

select c.custid, c.companyname, o.orderid, o.orderdate
from Sales.Customers c
inner join
Sales.Orders o
on c.custid = o.custid
where o.orderdate = '2007-02-12'

7. 返回在2007年2月12日下过订单的客户,以及他们的订单。同时也返回在2007年2月12日没有下过订单的客户。

1
2
3
4
5
6
7
select c.custid, c.companyname, o.orderid, o.orderdate
from Sales.Customers c
left join
Sales.Orders o
on c.custid = o.custid
and o.orderdate = '2007-02-12'
order by c.custid

8. 返回所有的客户信息,并根据客户是否在2007年2月12日下过订单,再为每个客户返回一列Yes/No值。涉及的表:Sales.Customers表和Sales.Orders表。

1
2
3
4
5
6
7
8
select distinct c.custid, c.companyname, 
case when o.orderdate is null then 'NO' else 'YES' end HasOrderOn20070212
from Sales.Customers c
left join
Sales.Orders o
on c.custid = o.custid
and o.orderdate = '2007-02-12'
order by c.custid

avatar

chilihotpot

You Are The JavaScript In My HTML