提问人:Sternahirundo 提问时间:8/19/2023 最后编辑:marc_sSternahirundo 更新时间:8/19/2023 访问量:41
如何根据不同表的相同 ID 使用不同行的值填充列中的 NULL
How to fill a NULL in a column with the value of a different line based on same id of a different table
问:
这是我的SQL查询:
SELECT
GXFINENTRYLINES.GXID, GXFINENTRY.GXID FINENTRYGXID,
GXTRADER.GXNAME, GXFINENTRYLINES.GXLINENUM,
GXFINENTRYLINES.GXTRNVALUE
FROM
GXFINENTRYLINES
LEFT JOIN
GXTRADEENTRY ON GXFINENTRYLINES.GXTENTID = GXTRADEENTRY.GXID
LEFT JOIN
GXFINENTRY ON GXFINENTRYLINES.GXFENTID = GXFINENTRY.GXID
INNER JOIN
GXFINENTRYTYPE ON GXFINENTRY.GXFETPID = GXFINENTRYTYPE.GXID
LEFT JOIN
GXTRADER ON GXFINENTRYLINES.GXTRDRID = GXTRADER.GXIDyour`
结果是这样的:
GXFINENTRYLINES中。GXID公司 | FINENTRYGXID | GXNAME名称 | 亚利纳姆 | GXTRNVAL的 |
---|---|---|---|---|
BA4A846A-2D3E-7974-DC0B-018A02C26931 | D0CFE900-8A25-BF6E-1125-018A02C226F0 | NAME_A | -1 | 3800.00 |
5BBB6000-34FE-43B7-C173-018A02C27527 | D0CFE900-8A25-BF6E-1125-018A02C226F0 | 零 | 1 | 3300.00 |
C8529015-DC40-EA1E-36A1-018A02E3F088 | D0CFE900-8A25-BF6E-1125-018A02C226F0 | 零 | 2 | 500.00 |
BE224ED1-A770-62C3-DB71-0185DDB1B62C | 型号:2E1CE68A-5D4A-BBD8-021F-0185DDB0CB13 | NAME_B | -1 | 2500.00 |
95F1F307-143F-8864-A987-0185DDB1F457 | 型号:2E1CE68A-5D4A-BBD8-021F-0185DDB0CB13 | 零 | 1 | 2500.00 |
但是我试图找到的,我想要的结果是将名称放在而不是 B 列 () 中的 id 的位置和位置相同。GXNAME
NULL
LINENUM <> -1
FINENTRYGXID
结果应如下所示:
GXFINENTRYLINES中。GXID公司 | FINENTRYGXID | GXNAME名称 | 亚利纳姆 | GXTRNVAL的 |
---|---|---|---|---|
BA4A846A-2D3E-7974-DC0B-018A02C26931 | D0CFE900-8A25-BF6E-1125-018A02C226F0 | NAME_A | -1 | 3800.00 |
5BBB6000-34FE-43B7-C173-018A02C27527 | D0CFE900-8A25-BF6E-1125-018A02C226F0 | NAME_A | 1 | 3300.00 |
C8529015-DC40-EA1E-36A1-018A02E3F088 | D0CFE900-8A25-BF6E-1125-018A02C226F0 | NAME_A | 2 | 500.00 |
BE224ED1-A770-62C3-DB71-0185DDB1B62C | 型号:2E1CE68A-5D4A-BBD8-021F-0185DDB0CB13 | NAME_B | -1 | 2500.00 |
95F1F307-143F-8864-A987-0185DDB1F457 | 型号:2E1CE68A-5D4A-BBD8-021F-0185DDB0CB13 | NAME_B | 1 | 2500.00 |
我将不胜感激您的帮助!
答:
2赞
Stu
8/19/2023
#1
如果没有看到一些示例数据,就不可能简洁明了,但是我怀疑您可以在此处为列使用窗口聚合:
..., max(GXTRADER.GXNAME) over(partition by FINENTRYGXID) as GXNAME,...
评论
1赞
Sternahirundo
8/19/2023
多谢!无需样本数据!你的答案是对的!
评论