sql - 在存储过程中向表中插入常量值

标签 sql sql-server join constants

我有以下存储过程:

DECLARE @BeginDate1 datetime, @EndDate1 datetime
set @BeginDate1 = '04-01-2012'
set @EndDate1  = '03-31-2013'
BEGIN

    INSERT INTO MTBUR_Type_Stage
       SELECT 
          R.Type, [Hours], 
          LEFT(dbo.fn_GetPartName(R.PartID),CHARINDEX('-',dbo.fn_GetPartName(R.ACSS_PartID), 1) - 1) AS 'Part No', 
          Count(s.status) AS NumberUnscheduled, 
          ([Hours]/Count(s.status)) AS MTBUR
       FROM 
          Repair R
       INNER JOIN 
          Conversion C ON (R.Performed = C.Performed)
                       AND (R.Confirmed = C.Confirmed)
       INNER JOIN 
          Status S ON C.StatusID = S.StatusID
       INNER JOIN 
          #MTBUR_Hrs_Temp TEMP ON LEFT(dbo.fn_GetPartName(R.PartID),CHARINDEX('-',dbo.fn_GetPartName(R.PartID), 1) - 1) = TEMP.productNo
                               AND R.Type = TEMP.Type  
        WHERE 
           (R.Received BETWEEN @BeginDate1 AND @EndDate1)
           AND (S.Status = 'UNSCHEDULED')
        GROUP BY 
           LEFT(dbo.fn_GetPartName(R.PartID),CHARINDEX('-',dbo.fn_GetPartNaame(R.PartID), 1) - 1), [Hours], R.Type
        ORDER BY 
           R.Type, 
           LEFT(dbo.fn_GetPartName(R.ACSS_PartID),CHARINDEX('-',dbo.fn_GetPartID(R.PartID), 1) - 1) ASC

    DROP TABLE #MTBUR_Hrs_Temp
END

正在插入的表 (MTBUR_Type_Stage) 具有名为 EndingDateEndingQuarter 的列。 EndingDate 需要具有与 @EndDate 相同的日期(常量),并且 EndingQuarter 需要具有常量值 1

如何在我的存储过程中编写此脚本,以便使用这些常量填充 MTBUR_Type_Stage 中相关列中的所有行?

以下是我要插入的表的 DDL:

CREATE TABLE [dbo].[MTBUR_ByType_StageTbl]
(
    [Type] [nvarchar](25) NULL,
    [Hours] [float] NULL,
    [Part No] [varchar](15) NULL,
    [UnscheduledRemovals] [int] NULL,
    [MTBUR] [float] NULL,
    [EndingDate] [datetime] NULL,
    [EndingQuarter] [int] NULL
) ON [PRIMARY]

最佳答案

就这么简单:

insert MTBUR_Type_Stage(EndingDate,EndingQuarter)
values (@EndDate,1)
;

或者这个

insert MTBUR_Type_Stage(EndingDate,EndingQuarter)
select @EndDate,1

扩展到更多字段:

insert MTBUR_Type_Stage( 
    [Type],
    [Hours],
    [Part No],
    [UnscheduledRemovals],
    [MTBUR],
    [EndingDate],
    [EndingQuarter] [int] NULL
)
select 
    'x',1.00,'part 1', 0, 2.34,
    @EndDate,1

关于sql - 在存储过程中向表中插入常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899916/

相关文章:

mysql - 为什么我可以使用 SCHEMABINDING 修改 View 引用的表?

SQL 按问题分组

mysql - 如何使用 statement update from 更新 mysql 表?

SQL Server - 多个 FROM 关键字?

PostgreSQL 中的 SQL JOIN - WHERE 子句中的执行计划与 ON 子句中的执行计划不同

java - 在握手期间检索公共(public)服务器证书 key

sql-server - SQL Server 到 Oracle 链接服务器的字符编码

mysql - 为什么这个 MySQL 语句要从这个 JOIN 的两个表中提取数据?

mysql - 在表之间的连接期间,MySQL 是否自动使用 coalesce 函数?

sql - sql server中Identity列值突然跳到1001