首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

重开一贴,过滤与求和 sum()解决办法

2012-02-20 
重开一贴,过滤与求和 sum()DepotInTblWareTblPLUNo,Name,QtyPLU,Price1我想先把WareTbl中PLU(有重复)给先

重开一贴,过滤与求和 sum()
DepotInTbl WareTbl
PLUNo,Name,Qty PLU,Price1

我想先把WareTbl中PLU(有重复)给先过滤掉,只取一个,然后进行查询

“select PLUNo,Name,sum(Qty) as dQuality,Price1 from DepotInTbl,WareTbl w where (select min(PLU) from WareTbl where PLU=w.PLU) and PLUNo=w.PLU and Qty>0”

也就是说先过滤重复的PLU,再去求那个SUM(),但是现在结果:确实是过滤了,但是是先求和、再过滤!返回的dQuality总是重复累加了。我要的是:先过滤,再求和!
求助~~~~~~~~~~~~~~~

[解决办法]

select a.PLUNo,a.[Name],sum(a.Qty) as dQuality, b.Price1 
from DepotInTbl a inner join
(select PLU,min(Price1)as Price1 FROM WareTb1 group by PLU) b 
on a.PLUNo = b.PLU 
group by a.PLUNo,a.[Name],b.Price1
[解决办法]
select distinct PLU,Price1 from WareTbl 
相當於 select PLU,Price1 from WareTbl group by PLU,Price1
注意:distinct 多列時,PLU可能有重復。(好象這樣不符合你的要求 )。。。 
你可以改為: select PLU , AVG(Price) as Price From WareTbl Group By PLU

" WareTbl 中的PLU要去掉重复项 " 是要如何去掉重復項呢,這點你要明確。如果只保留一個PLU的話,對應多個 Price 又取哪個(或是平均值)。如果只要去掉相同價格的選項的話,存在多個PLU,又如何與表DepotInTbl 做連接呢(左右連接或是 交叉連接全連接,得到的結果是不一樣的)

DepotInTbl的PLUNo要保留全部,
select PLUNo,Name,sum(Qty) as dQuality FROM DepotInTbl 
GROUP BY PLUNo,Name
可以滿足要求,但需要再聯接一個價格 Price ...可是 price 卻有多項。


我還是不清楚樓主想要的結果是什麼。。。。如果能用數據來說話就好了。

热点排行