Что у меня есть это:Добавить новое поле в сводную
SELECT Value AS FieldName, [42] AS [KeyID_42],[600] AS [KeyID_600]
INTO ##Temp311037
FROM
(
SELECT TransID, Value, FieldName
FROM
(
SELECT TransID, Convert(VarChar(250), [AccountNbr]) AS [AccountNbr], [CoAdd1]) AS [CoAdd1], Convert(VarChar(250), [CoAdd2]) AS [CoAdd2], Convert(VarChar(250), [CoCity]) AS [CoCity], Convert(VarChar(250), [CoFax]) AS [CoFax]
FROM tblSQLContacts
) p
UNPIVOT
(
FieldName FOR Value IN
([accountNbr], [CoAdd1], [CoAdd2], [CoCity], [CoFax])
)AS unpvt
) AS SourceTable
PIVOT
(
MAX(FieldName)
FOR TransID IN ([42],[600])
) AS PivotTable
WHERE [42] <> [600]
И мой результат выглядит следующим образом:
FieldName KeyID_42 KeyID_600
AccountNbr 55664 55635
ChoiceFundYN 0 1
CoAdd1 PO Box 2200 1500 Mountain Drive
CoAdd2 PO Box 7004 PO Box 4300
CoCity Las Vegas Birmingham
CoFax 5552355622 5552975152
И эти данные поступают из таблицы tblSQLContacts
. Ну, проблема в том, что у меня будет массивный UNION
около 20 таблиц. Таким образом, я хотел бы иметь возможность добавить имя таблицы в этот вывод в своем собственном поле. Таким образом, конечный результат будет следующим:
FieldName KeyID_42 KeyID_600 Table
AccountNbr 55664 55635 tblSQLContacts
ChoiceFundYN 0 1 tblSQLContacts
CoAdd1 PO Box 2200 1500 Mountain Drive tblSQLContacts
CoAdd2 PO Box 7004 PO Box 4300 tblSQLContacts
CoCity Las Vegas Birmingham tblSQLContacts
CoFax 5552355622 5552975152 tblSQLContacts
Возможно ли это? Кажется, я не могу заставить его работать. В идеале я бы хотел, чтобы это было первое поле, но я возьму его в любом месте, где только могу.
Вы можете поместить строчный закодированный столбец внутри своего подвоза подведомственности под названием table со значением вашего имени таблицы - поскольку значение для каждой строки одинаково, оно не должно влиять на ваш стержень. – Taryn
Я изменил первую строку на SELECT 'tblSQLContacts' AS TableName, Value AS FieldName, [42] AS [KeyID_42], [600] AS [KeyID_600], и это сработало! Благодаря! –