按代码分组,不允许空列或超过空列(SQL中的partton
在SQLServerDB中,我有一个我感兴趣的值表 当我做一个按代码分组,不允许空列或超过空列(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
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行或更多行吗?非常感谢你,这是我需要的,我从不尝试;)@西蒙雷斯特雷波很乐意帮忙:)