我创建了一个具有两个选择的过程,我想将这两个选择的结果合并为一个。
这是我的程序
CREATE PROCEDURE spConsultarVendas
@nomeUsuario nvarchar(60),
@dataEmissao datetime,
@dataSaida datetime
AS
BEGIN
SELECT
NF.ID, NF.NaturezaOperacao, NF.DataEmissao, NF.ValorTotal
FROM
NotaFiscal AS NF
INNER JOIN
Venda AS V ON NF.ID_Venda = V.ID
INNER JOIN
Usuario AS U ON V.ID_UsuarioComissao1 = U.ID
WHERE
U.Descricao = @nomeUsuario
AND (NF.DataEmissao >= @dataEmissao AND NF.DataSaida <= @dataSaida)
SELECT
SUM(NF.ValorTotal) AS FinalValue
FROM
NotaFiscal AS NF
INNER JOIN
Venda AS V ON Nf.ID_Venda = V.ID
INNER JOIN
Usuario AS U ON V.ID_UsuarioComissao1 = U.ID
WHERE
U.Descricao = @nomeUsuario
AND (NF.DataEmissao >= @dataEmissao AND NF.DataSaida <= @dataSaida)
END
这些是结果:
我想将这些结果合并为一个。
答案 0 :(得分:3)
您可以轻松地将最终结果添加到第一个查询的每一行:
SELECT NF.ID, NF.NaturezaOperacao, NF.DataEmissao, NF.ValorTotal,
SUM(NF.ValorTotal) OVER () AS ValorFinal
FROM NotaFiscal NF INNER JOIN
Venda V
ON NF.ID_Venda = V.ID INNER JOIN
Usuario U
ON V.ID_UsuarioComissao1 = U.ID
WHERE U.Descricao = @nomeUsuario AND
(NF.DataEmissao >= @dataEmissao AND NF.DataSaida <= @dataSaida)