你能帮我建立一个 SQL 查询来从历史表中检索数据吗?
我是一个只有一周编码经验的新手。到目前为止,我一直在尝试简单的 SELECT 语句,但遇到了一个绊脚石。
我的足球俱乐部的数据库有三个表。第一个将球与球员联系起来:
BallDetail
| BallID | PlayerID | TeamID |
|-------------------|--------|
| 1 | 11 | 21 |
| 2 | 12 | 22 |
第二个列出了球发生的事情:
BallEventHistory
| BallID | Event | EventDate |
|--------|------ |------------|
| 1 | Pass | 2012-01-01 |
| 1 | Shoot | 2012-02-01 |
| 1 | Miss | 2012-03-01 |
| 2 | Pass | 2012-01-01 |
| 2 | Shoot | 2012-02-01 |
第三个是历史变化表。球易手后,记录历史:
HistoryChanges
| BallID | ColumnName | ValueOld | ValueNew |
|--------|------------|----------|----------|
| 2 | PlayerID | 11 | 12 |
| 2 | TeamID | 21 | 22 |
我正在尝试获取一张表格,该表格将列出球员 11 在球传给其他球员之前对所有球所做的所有传球和射门。像这样:
| PlayerID | BallID | Event | Month |
|----------|--------|-------|-------|
| 11 | 1 | Pass | Jan |
| 11 | 1 | Shoot | Feb |
| 11 | 2 | Pass | Jan |
我开始这样:
SELECT PlayerID, BallID, Event, DateName(month, EventDate)
FROM BallDetail bd INNER JOIN BallEventHistory beh ON bd.BallID = beh.BallID
WHERE PlayerID = 11 AND Event IN (Pass, Shoot) ...
但是,如何确保 Ball 2 也被包括在内,尽管现在与另一名球员在一起?