Мне нужно заполнить временную таблицу частично из другой таблицы, а остальные статическими значениями - PullRequest
1 голос
/ 06 ноября 2019

Я использую TSql и создал временную таблицу с 23 столбцами. Мне нужно заполнить первые 15 столбцов из другой таблицы и последние 8 столбцов статическими значениями. Причина в том, что я использую Union в конечном запросе, чтобы объединить временную таблицу с данными запроса, которая имеет 23 столбца.

Я использовал оператор inert in, чтобы заполнить первые 15 столбцов без проблем, но я не могу понять, как добавить статические столбцы.

create table #Inspections (CMPR_PKG_SQ int, 
    CREA_TMS datetime, 
    [SPEC_SQ] int, 
    [LOT_ID_TXT] varchar(50), 
    [SMPL_NUM] varchar(15), 
    [WPI_NUM] char(6), 
    [WPI_SEG_NUM] char(1), 
    [WP_PHAS_GRP_CD] char(1), 
    [WP_PHAS_TYP_CD] char(1), 
    [FINPROJ_SQ] char(2), 
    [MIX_DSGN_SQ] int, 
    [FCLTY_SQ] int, 
    District char(2), 
    [Mix #] char(280), 
    [Mix Type] char(128), 
    [3/8" Percent Passing] decimal(15,3), 
    [4 Percent Passing] decimal(15,3), 
    [8 Percent Passing] decimal(15,3), 
    [200 Percent Passing] decimal(15,3), 
    [Percent Content] decimal(15,3), 
    [Percent Voids] decimal(15,3), 
    [Density] decimal(15,3), 
    CF decimal(15,3))

insert into #Inspections (CMPR_PKG_SQ,
     CREA_TMS,
     [SPEC_SQ],
     [LOT_ID_TXT],
     [SMPL_NUM],
     [WPI_NUM],
     [WPI_SEG_NUM],
     [WP_PHAS_GRP_CD],
     [WP_PHAS_TYP_CD],
     [FINPROJ_SQ],
     [MIX_DSGN_SQ],
     [FCLTY_SQ],
     District,
     [Mix #],
     [Mix Type])
Select CMPR_PKG_SQ,
     CREA_TMS,
     [SPEC_SQ],
     [LOT_ID_TXT],
     [SMPL_NUM],
     [WPI_NUM],
     [WPI_SEG_NUM],
     [WP_PHAS_GRP_CD],
     [WP_PHAS_TYP_CD],
     [FINPROJ_SQ],
     [MIX_DSGN_SQ],
     [FCLTY_SQ],
     District,
     [Mix #],
     [Mix Type]
from SourceTable

Как добавить N / A в оставшиеся столбцы?

Ответы [ 2 ]

3 голосов
/ 06 ноября 2019

Вы можете указать литералы / константы в операторе select.

insert into #Inspections (CMPR_PKG_SQ,
     CREA_TMS,
     [SPEC_SQ],
     [LOT_ID_TXT],
     [SMPL_NUM],
     [WPI_NUM],
     [WPI_SEG_NUM],
     [WP_PHAS_GRP_CD],
     [WP_PHAS_TYP_CD],
     [FINPROJ_SQ],
     [MIX_DSGN_SQ],
     [FCLTY_SQ],
     District,
     [Mix #],
     [Mix Type],

     -- Additional columns...
     [3/8" Percent Passing])
Select CMPR_PKG_SQ,
     CREA_TMS,
     [SPEC_SQ],
     [LOT_ID_TXT],
     [SMPL_NUM],
     [WPI_NUM],
     [WPI_SEG_NUM],
     [WP_PHAS_GRP_CD],
     [WP_PHAS_TYP_CD],
     [FINPROJ_SQ],
     [MIX_DSGN_SQ],
     [FCLTY_SQ],
     District,
     [Mix #],
     [Mix Type],

     -- hard coded values
     19.783 AS [3/8" Percent Passing]
from SourceTable
0 голосов
/ 06 ноября 2019

Я думаю, что вы хотите вставить 'NA' под столбцами.

[3/8" Percent Passing],
[4 Percent Passing],
[8 Percent Passing],
[200 Percent Passing],
[Percent Content],
[Percent Voids],
[Density] &
CF decimal]

Если это правильно, запрос не будет вставлен, потому что он ожидает десятичного числа (15,3), и вы предоставляетеit String, то есть 'NA'

Теоретически это должно работать, если типами атрибутов были Varchars

insert into #Inspections (CMPR_PKG_SQ,
     CREA_TMS,
     [SPEC_SQ],
     [LOT_ID_TXT],
     [SMPL_NUM],
     [WPI_NUM],
     [WPI_SEG_NUM],
     [WP_PHAS_GRP_CD],
     [WP_PHAS_TYP_CD],
     [FINPROJ_SQ],
     [MIX_DSGN_SQ],
     [FCLTY_SQ],
     District,
     [Mix #],
     [Mix Type],
    'N/A'  as   [3/8" Percent Passing],
    'N/A'  as   [4 Percent Passing],
    'N/A'  as   [8 Percent Passing],
    'N/A'  as   [200 Percent Passing],
    'N/A'  as   [Percent Content],
    'N/A'  as   [Percent Voids],
    'N/A'  as   [Density],
    'N/A'  as   [CF decimal])
from SourceTable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...