按代码分组,不允许空列或超过空列(SQL中的partton

按代码分组,不允许空列或超过空列(SQL中的partton,sql,sql-server,Sql,Sql Server,在SQLServerDB中,我有一个我感兴趣的值表 当我做一个 min(PDM_Objective) over(partition by PDM_Objective) 但永远不要成为一个团体 所以,我的桌子是这个 CODE|PDM_Objec |Real_Market|Card_Market ----|-----------|-----------|--- 1 | 52.99 |NULL |NULL 1 | NULL |223947.00 |NULL

在SQLServerDB中,我有一个我感兴趣的值表

当我做一个

min(PDM_Objective) over(partition by PDM_Objective)
但永远不要成为一个团体

所以,我的桌子是这个

CODE|PDM_Objec  |Real_Market|Card_Market
----|-----------|-----------|---
1   |   52.99   |NULL       |NULL
1   |   NULL    |223947.00  |NULL
1001|   44.44   |NULL       |NULL
1001|   NULL    |220519.99  |NULL
交这个

CODE|PDM_Objec  |Real_Market|Card_Market
----|-----------|-----------|---
1   |   52.99   |223947.00  |NULL
1001|   44.44   |220519.99  |NULL
给你:

DECLARE @T TABLE (CODE INT, PDM_Objec DECIMAL(4,2), Real_Market DECIMAL(8,2), Card_Market INT);

INSERT INTO @T VALUES
(1   ,52.99, NULL     , NULL),
(1   ,NULL , 223947.00, NULL),
(1001,44.44, NULL     , NULL),
(1001,NULL , 220519.99, NULL);

SELECT CODE, MAX(PDM_Objec), MAX(Real_Market), MAX(Card_Market)
FROM @T
GROUP BY CODE;

怎么样

select CODE
,sum(isnull(PDM_Objec,0))PDM_Objec 
,sum(isnull(Real_Market,0))Real_Market
,sum(isnull(Card_Market,0))Card_Market
from table 
group by CODE

您可以尝试以下查询:

select CODE, sum(isnull(PDM_Objec,0)) PDM_Objec, 
sum(isnull(Real_Market,0)) Real_Market, max(Card_Market) Card_Market
from yourtable group by CODE

你是在找一个没有超过()子句的群组中的max()吗
Real\u Market
值总是在下面的一行吗?还是
code
1001
可以有3行?你能附上完整的查询吗?是的,它可以有
Real\u Market
有3行或更多行吗?非常感谢你,这是我需要的,我从不尝试;)@西蒙雷斯特雷波很乐意帮忙:)