需要取PACKS_NO PO_NO两列的最大值,并对ALL_QTY B_QTY C_QTY按上述条件求和:
记录集:
C S P PACKS_NO E ALL_QTY B_QTY C_QTY
AIR2016101102T4 2016/10/3 11588723 CO2016101102 840148790 100 0 0
AIR2016101102T4 2016/10/3 11588723 CO2016101101 840150601 100 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101104 840148790 7500 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101103 840150601 7500 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101106 840148790 6000 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101107 840150601 6000 0 0
问题SQL:
SELECT TP.C,
TP.S,
TP.P,
MAX(TP.D),
MAX(TP.E) E,
SUM(TP.ALL_QTY) ,
SUM(TP.B_QTY) ,
SUM(TP.c_QTY)
FROM TABLEA TP, TABLEB GP
WHERE TP.C = GP.C
AND TP.S = GP.S
AND TP.P = GP.P
AND GP.PLAN_NO = '****'
GROUP BY TP.P, TP.C, TP.S;
按P分组后取 MAX(TP.D), MAX(TP.E) E,会因为PACKS_NO E大小不规整而不能按需取最大值
求各位大神支招,不胜感激
7 个解决方案
#1
你要的结果是什么样的呢,画个 excel 出来吧。
#2
把给的示例数据格式化一下,看不清楚
另外,预期得到什么样的结果也贴出来
另外,预期得到什么样的结果也贴出来
#3
预期结果:
AIR2016101102T4 2016/10/3 11588723 CO2016101101 840150601 200 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101103 840150601 15000 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101107 840150601 12000 0 0
AIR2016101102T4 2016/10/3 11588723 CO2016101101 840150601 200 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101103 840150601 15000 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101107 840150601 12000 0 0
#4
原始数据:
目标数据:
需求:在C,S相同的情况下,根据P不同,取PO_NO的最大值,并根据C,S,P将ALL_QTY,STD_QTY,BOX_QTY取和,望各位大神支招!
C S P PACKS_NO PO_NO ALL_QTY STD_QTY BOX_QTY
AIR2016101102T4 2016/10/3 11588723 CO2016101102 840148790 100 0 0
AIR2016101102T4 2016/10/3 11588723 CO2016101101 840150601 100 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101104 840148790 7500 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101103 840150601 7500 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101106 840148790 6000 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101107 840150601 6000 0 0
目标数据:
C S P PACKS_NO PO_NO ALL_QTY STD_QTY BOX_QTY
AIR2016101102T4 2016/10/3 11588723 CO2016101101 840150601 200 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101103 840150601 15000 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101107 840150601 12000 0 0
需求:在C,S相同的情况下,根据P不同,取PO_NO的最大值,并根据C,S,P将ALL_QTY,STD_QTY,BOX_QTY取和,望各位大神支招!
#5
-- 这个意思?
select C, S, P, MAX(PN_NO), SUM(ALL_QTY)
from t
group by C,S,P
#6
还有一列 PACKS_NO ,不能取最值(取最值的话可能会出现po_no与packs_no不匹配的情况),需要取 po_no最大的那一列对应的packs_no值
#1
你要的结果是什么样的呢,画个 excel 出来吧。
#2
把给的示例数据格式化一下,看不清楚
另外,预期得到什么样的结果也贴出来
另外,预期得到什么样的结果也贴出来
#3
预期结果:
AIR2016101102T4 2016/10/3 11588723 CO2016101101 840150601 200 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101103 840150601 15000 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101107 840150601 12000 0 0
AIR2016101102T4 2016/10/3 11588723 CO2016101101 840150601 200 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101103 840150601 15000 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101107 840150601 12000 0 0
#4
原始数据:
目标数据:
需求:在C,S相同的情况下,根据P不同,取PO_NO的最大值,并根据C,S,P将ALL_QTY,STD_QTY,BOX_QTY取和,望各位大神支招!
C S P PACKS_NO PO_NO ALL_QTY STD_QTY BOX_QTY
AIR2016101102T4 2016/10/3 11588723 CO2016101102 840148790 100 0 0
AIR2016101102T4 2016/10/3 11588723 CO2016101101 840150601 100 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101104 840148790 7500 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101103 840150601 7500 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101106 840148790 6000 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101107 840150601 6000 0 0
目标数据:
C S P PACKS_NO PO_NO ALL_QTY STD_QTY BOX_QTY
AIR2016101102T4 2016/10/3 11588723 CO2016101101 840150601 200 0 0
AIR2016101102T4 2016/10/3 11588724 CO2016101103 840150601 15000 0 0
AIR2016101102T4 2016/10/3 11588725 CO2016101107 840150601 12000 0 0
需求:在C,S相同的情况下,根据P不同,取PO_NO的最大值,并根据C,S,P将ALL_QTY,STD_QTY,BOX_QTY取和,望各位大神支招!
#5
-- 这个意思?
select C, S, P, MAX(PN_NO), SUM(ALL_QTY)
from t
group by C,S,P
#6
还有一列 PACKS_NO ,不能取最值(取最值的话可能会出现po_no与packs_no不匹配的情况),需要取 po_no最大的那一列对应的packs_no值
#7
已在另一贴回复,你确认一下结果
http://bbs.csdn.net/topics/392032991?page=1#post-401678540
http://bbs.csdn.net/topics/392032991?page=1#post-401678540