使用特定的 select 列表插入 SQL
Inserting in SQL with specific select list
您好,我正在尝试插入一个看起来与此类似的行 table
要插入 table 我使用此代码
Insert Into Fixture_Data (Fixture_NAME, Date_Logged, Calendar_Week, Calendar_Year)
Select ACTIVE_FIXTURES.Fixture_NAME,
Fixture_Rows_For_Year.Start_Date as Date_Logged,
Fixture_Rows_For_Year.Calendar_Week,
Fixture_Rows_For_Year.Calendar_Year
From ACTIVE_FIXTURES
Cross Join Fixture_Rows_For_Year;
但是,当我想专门为一个夹具名称插入一行时,出现错误。我要插入的灯具名称来自另一个 table,我在其中保留了所有活动灯具的列表,但我收到 SQL 命令未正确结束或并非所有变量都正确绑定错误 取决于我把 where 语句放在哪里。这是错误代码:
Insert Into Fixture_Data (Fixture_NAME, Date_Logged, Calendar_Week, Calendar_Year)
Select ACTIVE_FIXTURES.Fixture_NAME,
Fixture_Rows_For_Year.Start_Date as Date_Logged,
Fixture_Rows_For_Year.Calendar_Week,
Fixture_Rows_For_Year.Calendar_Year
From ACTIVE_FIXTURES
Cross Join Fixture_Rows_For_Year
where Fixture_Name =: P6_NEW;
非常感谢任何帮助。
P6_NEW
是第 6 页上的一个项目(您可以将其命名为 smarter,“new”不是很好描述)。
当您引用页面项目时,您可以在它们的名称前加上冒号 (:
)。这恰恰意味着 - 在项目名称 之前。中间没有空格。
No : where Fixture_Name =: P6_NEW
Yes: where a.fixture_name = :P6_NEW
----
note the difference
此外,习惯使用table别名;它们使代码更易于阅读。
insert into fixture_data
(fixture_name,
date_logged,
calendar_week,
calendar_year)
select a.fixture_name,
f.start_date as date_logged,
f.calendar_week,
f.calendar_year
from active_fixtures a cross join fixture_rows_for_year f
where a.fixture_name = :P6_NEW;
您好,我正在尝试插入一个看起来与此类似的行 table
要插入 table 我使用此代码
Insert Into Fixture_Data (Fixture_NAME, Date_Logged, Calendar_Week, Calendar_Year)
Select ACTIVE_FIXTURES.Fixture_NAME,
Fixture_Rows_For_Year.Start_Date as Date_Logged,
Fixture_Rows_For_Year.Calendar_Week,
Fixture_Rows_For_Year.Calendar_Year
From ACTIVE_FIXTURES
Cross Join Fixture_Rows_For_Year;
但是,当我想专门为一个夹具名称插入一行时,出现错误。我要插入的灯具名称来自另一个 table,我在其中保留了所有活动灯具的列表,但我收到 SQL 命令未正确结束或并非所有变量都正确绑定错误 取决于我把 where 语句放在哪里。这是错误代码:
Insert Into Fixture_Data (Fixture_NAME, Date_Logged, Calendar_Week, Calendar_Year)
Select ACTIVE_FIXTURES.Fixture_NAME,
Fixture_Rows_For_Year.Start_Date as Date_Logged,
Fixture_Rows_For_Year.Calendar_Week,
Fixture_Rows_For_Year.Calendar_Year
From ACTIVE_FIXTURES
Cross Join Fixture_Rows_For_Year
where Fixture_Name =: P6_NEW;
非常感谢任何帮助。
P6_NEW
是第 6 页上的一个项目(您可以将其命名为 smarter,“new”不是很好描述)。
当您引用页面项目时,您可以在它们的名称前加上冒号 (:
)。这恰恰意味着 - 在项目名称 之前。中间没有空格。
No : where Fixture_Name =: P6_NEW
Yes: where a.fixture_name = :P6_NEW
----
note the difference
此外,习惯使用table别名;它们使代码更易于阅读。
insert into fixture_data
(fixture_name,
date_logged,
calendar_week,
calendar_year)
select a.fixture_name,
f.start_date as date_logged,
f.calendar_week,
f.calendar_year
from active_fixtures a cross join fixture_rows_for_year f
where a.fixture_name = :P6_NEW;