【发布时间】:2019-08-05 21:15:26
【问题描述】:
我有两张桌子。
表一:PERSON
|-----------|-----------|-------------------------|
| id | name | date_joined |
|-----------|-----------|-------------------------|
| 10 | Joe | 03/25/2018 |
|-----------|-----------|-------------------------|
| 20 | Sam | 01/01/2017 |
|-----------|-----------|-------------------------|
表二:活动
|--------------|----------------|--------------|------------------|
| Activity_Id | DESCRIPTION | PERSON_ID | DATE_STARTED |
|--------------|----------------|--------------|------------------|
| 500 | RUNNING | 10 | 05/25/2018 |
|--------------|----------------|--------------|------------------|
| 600 | BASEBALL | 10 | 07/25/2018 |
|--------------|----------------|--------------|------------------|
PERSON 表有数百行,ACTIVITY 表有数千行。 PERSON 表中的某些实体不在 ACTIVITY 表中,而 PERSON 表中的某些实体在 ACTIVITY 表中有多个条目。
我能否使用这两个表中的两个查询来创建一个视图,以显示 person.id 和 activity.max(date_started)?如果 person.id 在 Activity 表中没有任何条目,则 person.date_joined 将进入视图。
或者它必须是一个程序?我有查询来查找 activity.max(date_started) 并有一个我创建的表 (newTable),例如没有 name 列的 Person 表,但 Id 和 date_joined 列中的数据完全相同。我将如何更新它以具有来自活动表的最新 date_started 和 person_id 的视图或表。如果不只是显示 person.date_joined
MERGE INTO newTable WITH (HOLDLOCK)AS R
USING (SELECT MAX(T.date_started), T.person_id
FROM activity T
WHERE (T.EVENT_TYPE_KEY IN (249)
) AS T
ON R.id = T.person_id
WHEN MATCHED THEN
update
set R.date_joined = T.date_started
并且合并语句不完整,可能是语法错误或其他原因,因为它引发了错误。
甲骨文数据库。有人告诉我 Pl/sql developer 在 sql server 上运行?
【问题讨论】:
-
您使用的是 MS SQL Server 还是 Oracle?
标签: sql sql-server oracle plsql