在完整的披露中,本周我使用SQL进入了一个项目,不幸的是,在非常基本的查询之外,使用它的经验很少。我将开始研究,但在短期内真的可以在这里使用一些帮助。
在此示例中,表名为Person_PR
和Person_CME
。
两个表
表:
Person_PR
record_num, person_num, pr_variable1, pr_variable2
Person_CME
record_num, person_num, cme_variable1, cme_varable2
我希望新表Person_new
包含record_num, person_num, cme_variable1, cme_varable2, pr_variable1 and pr_variable2
。
cme_
变量来自Person_CME
表和pr_
变量将来自Person_PR
表。 新表Person_new
:
record_num, person_num, cme_variable1, cme_varable2, pr_variable1, pr_variable2
我尝试使用insert into和create table作为select方法,但是无法正常工作。我希望有人能让我开始朝着正确的方向前进。提前感谢您花时间阅读本文以及您可能提供的任何帮助。
答案 0 :(得分:1)
在sql server中创建新表的语法是
SELECT p.record_num
, p.person_num
, c.cme_variable1
, c.cme_variable2
, p.pr_variable1
, p.pr_variable2
INTO new_table
FROM Person_PR p
INNER JOIN Person_CME c
ON p.person_num = c.person_num
AND p.record_num = b.record_num
但是,使用视图显示所需数据可能更有意义。
答案 1 :(得分:0)
您需要使用存储过程,而不是新表:
CREATE PROCEDURE [dbo].GetPersonData
AS
BEGIN
SET NOCOUNT ON;
SELECT cme.record_num ,
cme.person_num ,
cme.cme_variable1 ,
cme.cme_variable2 ,
pr.prvariable1 ,
pr.prvariable2
FROM Person_CME cme
INNER JOIN Person_PR pr ON cme.record_num = pr.record_num
AND cme.person_num = pr.person_num
END
然后,您可以使用存储过程作为Access窗体的记录源。无需创建新表,需要定期刷新并存储重复数据。如果适用,您也可以查看。
答案 2 :(得分:0)
在SSMS,对象资源管理器中,您可以右键单击表,脚本表为,创建到,新查询编辑器窗口。创建第3个查询窗口,复制并粘贴要从每个表中获取的字段,然后执行脚本以创建新表。
您也可以使用SELECT语句:
SELECT record_num, person_num, cme_variable1, cme_varable2, pr_variable1, and pr_variable2
INTO Person_new
FROM Person_PR
JOIN Person_CME ON 1=2
从那里你可以通过对象资源管理器进行编辑。
如果要包含两个表中的DATA,请将其设为视图,而不是尝试维护单独的表:
CREATE VIEW Person_new AS
SELECT PR.record_num, person_num, cme_variable1, cme_varable2, pr_variable1, and pr_variable2
FROM Person_PR AS PR
JOIN Person_CME AS CME ON PR.record_num = CME.record_num AND PR.person_num = CME.person_num
通过在任何select语句中包含ORDER BY子句来强制执行顺序,表不是“有序”