写一个sql查询,展示系统中总部各部门中每个人的参会次数、参会角色和参会共计时长,并用java写一个网页把来自sqlsever的查询结果展示出来
时间: 2024-03-26 20:35:27 浏览: 106
用JAVA语言编写的职工信息查询的程序
4星 · 用户满意度95%
SQL查询语句如下:
```
SELECT dept_name, name, COUNT(*), STRING_AGG(DISTINCT role, ', '), SUM(duration)
FROM meetings
JOIN employees ON meetings.employee_id = employees.id
JOIN departments ON employees.dept_id = departments.id
GROUP BY dept_name, name
```
这个查询假设有一个名为meetings的表,其中包含以下列:id, employee_id, role, duration。同样,假设有一个名为employees的表,其中包含以下列:id, name, dept_id。还假设有一个名为departments的表,其中包含以下列:id, dept_name。
Java代码如下:
```
import java.sql.*;
public class MeetingReport {
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=meetings", "user", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT dept_name, name, COUNT(*), STRING_AGG(DISTINCT role, ', '), SUM(duration) FROM meetings JOIN employees ON meetings.employee_id = employees.id JOIN departments ON employees.dept_id = departments.id GROUP BY dept_name, name");
while (rs.next()) {
String deptName = rs.getString(1);
String name = rs.getString(2);
int count = rs.getInt(3);
String roles = rs.getString(4);
int duration = rs.getInt(5);
System.out.println(deptName + " - " + name + ": " + count + " meetings, roles: " + roles + ", duration: " + duration + " minutes");
}
conn.close();
} catch (SQLException e) {
System.out.println("SQL exception occurred: " + e.getMessage());
}
}
}
```
这个代码假设使用SQL Server数据库,并且数据库名称为meetings,用户名为user,密码为password。你需要根据实际情况修改这些参数。它将查询结果输出到控制台。
要将查询结果呈现在网页上,你需要使用Java Web开发框架,例如Spring MVC或Servlet。你可以将查询结果存储在一个Java对象中,然后将该对象传递给视图(JSP或Thymeleaf模板),视图将查询结果呈现为HTML页面。这个过程超出了本回答的范围,但是你可以在网上找到很多关于Java Web开发的教程。
阅读全文