我在查询数据时遇到了问题,只能获取员工去年而不是所有年份的订单。
这是多年来的结果:
SELECT FirstName as 'Voornaam', Lastname as 'Familienaam', COUNT(Orders.OrderDate) as 'Behandelde Orders'
FROM Employees, Orders
WHERE ReportsTo IS NOT NULL
AND Employees.EmployeeID = Orders.EmployeeID
GROUP BY Orders.EmployeeID, FirstName, Lastname
ORDER BY Orders.EmployeeID
这给了
现在我想做同样的事情,但只在最近一年。在这里你可以看到一些表格顺序。它包含较旧的日期:
OrderID CustomerID EmployeeID OrderDate RequiredDate ShippedDate ShipVia Freight ShipName ShipAddress ShipCity ShipRegion ShipPostalCode ShipCountry
----------- ---------- ----------- ----------------------- ----------------------- ----------------------- ----------- --------------------- ---------------------------------------- ------------------------------------------------------------ --------------- --------------- -------------- ---------------
10248 VINET 5 1996-07-04 00:00:00.000 1996-08-01 00:00:00.000 1996-07-16 00:00:00.000 3 32,38 Vins et alcools Chevalier 59 rue de l'Abbaye Reims NULL 51100 France
10249 TOMSP 6 1996-07-05 00:00:00.000 1996-08-16 00:00:00.000 1996-07-10 00:00:00.000 1 11,61 Toms Spezialitäten Luisenstr. 48 Münster NULL 44087 Germany
10250 HANAR 4 1996-07-08 00:00:00.000 1996-08-05 00:00:00.000 1996-07-12 00:00:00.000 2 65,83 Hanari Carnes Rua do Paço, 67 Rio de Janeiro RJ 05454-876 Brazil
10251 VICTE 3 1996-07-08 00:00:00.000 1996-08-05 00:00:00.000 1996-07-15 00:00:00.000 1 41,34 Victuailles en stock 2, rue du Commerce Lyon NULL 69004 France
10252 SUPRD 4 1996-07-09 00:00:00.000 1996-08-06 00:00:00.000 1996-07-11 00:00:00.000 2 51,30 Suprêmes délices Boulevard Tirou, 255 Charleroi NULL B-6000 Belgium
10253 HANAR 3 1996-07-10 00:00:00.000 1996-07-24 00:00:00.000 1996-07-16 00:00:00.000 2 58,17 Hanari Carnes Rua do Paço, 67 Rio de Janeiro RJ 05454-876 Brazil
10254 CHOPS 5 1996-07-11 00:00:00.000 1996-08-08 00:00:00.000 1996-07-23 00:00:00.000 2 22,98 Chop-suey Chinese Hauptstr. 31 Bern NULL 3012 Switzerland
10255 RICSU 9 1996-07-12 00:00:00.000 1996-08-09 00:00:00.000 1996-07-15 00:00:00.000 3 148,33 Richter Supermarkt Starenweg 5 Genève NULL 1204 Switzerland
10256 WELLI 3 1996-07-15 00:00:00.000 1996-08-12 00:00:00.000 1996-07-17 00:00:00.000 2 13,97 Wellington Importadora Rua do Mercado, 12 Resende SP 08737-363 Brazil
10257 HILAA 4 1996-07-16 00:00:00.000 1996-08-13 00:00:00.000 1996-07-22 00:00:00.000 3 81,91 HILARION-Abastos Carrera 22 con Ave. Carlos Soublette #8-35 San Cristóbal Táchira 5022 Venezuela
10258 ERNSH 1 1996-07-17 00:00:00.000 1996-08-14 00:00:00.000 1996-07-23 00:00:00.000 1 140,51 Ernst Handel Kirchgasse 6 Graz NULL 8010 Austria
10259 CENTC 4 1996-07-18 00:00:00.000 1996-08-15 00:00:00.000 1996-07-25 00:00:00.000 3 3,25 Centro comercial Moctezuma Sierras de Granada 9993 México D.F. NULL 05022 Mexico
10260 OTTIK 4 1996-07-19 00:00:00.000 1996-08-16 00:00:00.000 1996-07-29 00:00:00.000 1 55,09 Ottilies Käseladen Mehrheimerstr. 369 Köln NULL 50739 Germany
我试过:
SELECT FirstName as 'Voornaam', Lastname as 'Familienaam', COUNT(Orders.OrderDate) as 'Behandelde Orders'
FROM Employees, Orders
WHERE ReportsTo IS NOT NULL
AND Employees.EmployeeID = Orders.EmployeeID
GROUP BY Orders.EmployeeID, FirstName, Lastname
ORDER BY Orders.EmployeeID
HAVING Orders.OrderDate = Max(Year(Orders.OrderDate))
SELECT FirstName as 'Voornaam', Lastname as 'Familienaam', COUNT(Orders.OrderDate) as 'Behandelde Orders'
FROM Employees, Orders
WHERE ReportsTo IS NOT NULL
AND Orders.OrderDate = Max(Year(Orders.OrderDate)))
AND Employees.EmployeeID = Orders.EmployeeID
GROUP BY Orders.EmployeeID, FirstName, Lastname
ORDER BY Orders.EmployeeID
SELECT FirstName as 'Voornaam', Lastname as 'Familienaam', COUNT(Orders.EmployeeID) as 'Behandelde Orders'
FROM Employees, Orders
WHERE ReportsTo IS NOT NULL
AND Orders.OrderDate = Max(year(Orders.OrderDate))
AND Employees.EmployeeID = Orders.EmployeeID
GROUP BY Orders.EmployeeID, FirstName, Lastname
ORDER BY Orders.EmployeeID
还有一些其他的变化。
首先,切勿在FROM子句中使用逗号。始终使用正确的显式连接语法。
以下版本假设您需要每人最近的日历年:
SELECT FirstName as Voornaam, Lastname as Familienaam,
COUNT(o.OrderDate) as BehandeldeOrders
FROM Employees e JOIN
Orders o
ON e.EmployeeID = o.EmployeeID
WHERE ReportsTo IS NOT NULL AND
YEAR(o.OrderDate) = (SELECT YEAR(MAX(o2.OrderDate))
FROM Orders o2
WHERE o2.EmployeeId = o.EmployeeId
)
GROUP BY o.EmployeeID, FirstName, Lastname
ORDER BY o.EmployeeID;
如果需要最近一年的总体数据,可以删除相关子句(子查询中的WHERE)。
问题内容: 这是我的数据 是独特的。我需要显示每张卡的所有详细信息和总时间,例如: 问题答案: SELECT卡号,用户名,表名,总和(小时)从表_1 GROUP BY卡号,用户名,表名开始
问题内容: 如果我的出生日期以表格的形式存储在表格中,并且从当前日期中减去该日期,那么返回的日期格式是什么? 如何使用这种返回的格式来计算某人的年龄? 问题答案: 如果该值存储为DATETIME数据类型: 考虑leap年时不太精确:
问题内容: 我需要根据订单的要求交货日期来安排Postgres查询中的某些项目。因此,例如,该订单在星期一(例如20120319)有一个请求的交货,并且该订单需要在前一个工作日(20120316)进行准备。 关于最直接方法的想法?我愿意添加日期表。我认为有比使用大量case语句更好的方法:SELECT EXTRACT(DOW FROM TIMESTAMP‘2001-02-16 20:38:40’)
问题内容: 我在mysql表中有一列,其数据类型为INT(11)。 如何搜索以获取此列中出现次数最多的前10个值? 问题答案:
本文向大家介绍PHP计算近1年的所有月份,包括了PHP计算近1年的所有月份的使用技巧和注意事项,需要的朋友参考一下 话不多说,请看代码: 效果图: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!
问题内容: 我想以Java方法的整数形式返回年龄(以年为单位)。我现在所拥有的是getBirthDate()返回Date对象(带有出生日期;的以下内容: 但是由于不赞成使用getYear(),所以我想知道是否有更好的方法可以做到这一点?我什至不确定这是否能正常工作,因为我还没有进行单元测试。 问题答案: JDK 8使这个变得轻松而优雅: 一个JUnit测试以证明其用法: 现在每个人都应该使用JDK