我有两个表,连接在一个列上,我想将具有不同名称的列之一连接到同一列中,我已经尝试过
我希望将whstocks.warehouse
与brnstocks.brachcode
串联。
当前结果(没有来自whstocks的900 brachcode)
brachcode | varint | stock --------------------------- 201 |24601121| 2 204 |24601121| 3 197 |24601121| 4
所需结果(将whstocks.warehouse中的900带入分支代码)
brachcode | varint | stock --------------------------- 201 |24601121| 2 204 |24601121| 3 197 |24601121| 4 900 |24601121| 400
SELECT brnstocks.branchcode , brnstocks.varint , SUM(brnstocks.retail)
FROM dbo.brnstocks
INNER JOIN dbo.whstocks
ON brnstocks.varint = whstocks.varint
GROUP BY brnstocks.branchcode, whstocks.warehouse
,brnstocks.varint
,brnstocks.retail
,whstocks.stock
HAVING (SUM(brnstocks.retail) > 0)
答案 0 :(得分:1)
尝试一下:
SELECT
P.branchcode , P.varint , SUM(P.retail)
FROM
(SELECT
branchcode , varint , retail
FROM dbo.brnstocks
UNION
SELECT
branchcode , varint , retail
FROM dbo.whstocks
) AS P
GROUP BY P.branchcode , P.varint
HAVING (SUM(P.retail) > 0)
假设whstocks
与brnstocks
具有相同的字段。如果不是,请替换whstocks
答案 1 :(得分:0)
由于您已经将两者分组,因此您应该可以使用+运算符将它们串联起来。
SELECT whstocks.warehouse + brnstocks.branchcode [WarehousePlusBranch], brnstocks.varint , SUM(brnstocks.retail)
FROM dbo.brnstocks
INNER JOIN dbo.whstocks
ON brnstocks.varint = whstocks.varint
GROUP BY brnstocks.branchcode
,whstocks.warehouse
,brnstocks.varint
,brnstocks.retail
,whstocks.stock
HAVING (SUM(brnstocks.retail) > 0)