如何从SQL表中选择特定行并在SQL Server中连接多个表?

问题描述 投票:0回答:1

我正在使用Northwind数据库来学习SQL服务器。我正在尝试运行SQL查询,以便我可以从Employees表中选择特定员工(EmployeeID = 1),以及从Orders表中与员工关联的每个订单,它是如何发货(发货通过),运送它的公司,从订单日期到发货日期的总天数。为此,我有以下查询,我不确定我的查询是否正确。任何人都可以验证吗?

我试过运行以下查询

  SELECT Employees.EmployeeID,
    Orders.OrderID,DATEDIFF(DAY,Orders.OrderDate,Orders.ShippedDate) AS 'Date 
    Diff',
    Orders.ShipVia,Shippers.ShipperID,Shippers.CompanyName FROM  Employees
    LEFT JOIN Orders ON Employees.EmployeeID=Orders.EmployeeID
    LEFT JOIN Shippers ON Orders.ShipVia=Shippers.ShipperID
    WHERE Employees.EmployeeID =1
    GROUP BY 

 Orders.ShipVia,Shippers.ShipperID,Shippers.CompanyName,Employees.EmployeeID,Orders.OrderID,Orders.OrderDate,Orders.ShippedDate
sql sql-server aggregate sql-server-2014
1个回答
1
投票

以下是使用GROUP BY子句的一些规则 -

1)SELECT语句子句,它将查询结果划分为行组,通常用于在每个组上执行一个或多个聚合。 SELECT语句每组返回一行。

2)指定列上的列或非聚合计算。此列可以属于表,派生表或视图。该列必须出现在SELECT语句的FROM子句中,但不需要出现在SELECT列表中。

3)该列必须出现在SELECT语句的FROM子句中,但不需要出现在SELECT列表中。但是,列表中任何非聚合表达式中的每个表或视图列都必须包含在GROUP BY列表中

这些是与SQL Server相关的文档中的一些重要点

希望这可以解决您的问题或清除您的概念。

更多信息,请访问https://docs.microsoft.com/en-us/sql/t-sql/queries/select-group-by-transact-sql?view=sql-server-2017

© www.soinside.com 2019 - 2024. All rights reserved.