Sql server之常用三表联查举例

1.创建表

CREATE TABLE [dbo].[Customer](

    [CustomerID] [int] NULL,

    [CustomerName] [nvarchar](50) NULL

) ON [PRIMARY]

CREATE TABLE [dbo].[Customer_Order](

    [CustomerID] [int] NULL,

    [OrderID] [int] NULL,

    [Data] [datetime] NULL

) ON [PRIMARY]

CREATE TABLE [dbo].[OrderID](

    [OrderID] [int] NULL,

    [Amount] [int] NULL

) ON [PRIMARY]

2.无订单的用户

select customerName

from customer C

left join Customer_Order CO

on c.customerid=co.customerid

where ISNULL(CO.customerid,0)!=0

group by c.customername

3.每个人的订单成交量

select customername,isnull(SUM(Amount),0) as amounttotal from customer c

left join customer_order co on c.customerid=co.customerid

left join orderid o on co.orderid=o.orderid

group by customername

order by amounttotal

4.2009年谁成交的订单大于7000

select customername,isnull(SUM(Amount),0) as amounttotal,YEAR(co.data) as yearDate from customer c

left join customer_order co on c.customerid=co.customerid and YEAR(co.data)=2009

left join orderid o on co.orderid=o.orderid

group by customername,YEAR(co.data)

having isnull(SUM(Amount),0) >7000

猜你喜欢

转载自pcajax.iteye.com/blog/1824973