当 EM_Main 和 OP_Main 表不包含 SP_Main 表具有的任何列时,如何将与 SP_Main 中的 EDBP 列类似的列添加到 EM_Main 和 OP_Main 表中。 我需要一列相同数据类型的列,以便 UNION ALL 不会中断。
这是代码:
select
ISNULL(CONVERT(money,[COLUMN1]), 0.00)
* COALESCE(CONVERT(MONEY,[COLUMN2]),CONVERT(MONEY,[COLUMN3]), 1.00) AS [EBDP],
ISNULL(CONVERT(money,[COLUMN1]), 0.00)
* COALESCE(CONVERT(MONEY,[COLUMN2]),CONVERT(MONEY,[COLUMN3]), 1.00)
+ [ActivityPrice] as TotalPrice,
convert(money,[COLUMN4]) as ActivityPrice
from [SP_Main] e
UNION ALL
select
[COLUMN WILL NEED TO BE CREATED FOR HERE]
ISNULL(CONVERT(money,[COLUMN5]), 0.00) AS [TotalPrice],
ISNULL(CONVERT(money,[COLUMN6]), 0.00) AS [ActivityPrice]
from EM_Main
UNION ALL
SELECT
[COLUMN WILL NEED TO BE CREATED FOR HERE]
ISNULL(CONVERT(money,[COLUMN5]), 0.00) AS [TotalPrice],
ISNULL(CONVERT(money,[COLUMN6]), 0.00) AS [ActivityPrice]
FROM OP_Main
我希望这有帮助
我相信如果第二个和第三个选择有
SELECT CAST(NULL AS money) AS [EBDP], ...
将执行您需要的操作(假设最后一列的类型为货币)。
或者,如果您想要特定值,可以使用
SELECT CAST(0 AS money) AS [EBDP]
。