用一条SQL完成数据表的行统计

来源:互联网 发布:查看linux 文本编码 编辑:程序博客网 时间:2024/05/21 17:19
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
作者的一个项目的查询系统需求:
有数据表:名称   数量  状态
-----------------------
产品A   10    进货
产品A   20    销售
产品B   20    进货 要查询结果为:产品名称  库存数量
-----------------------
产品A       -10 
产品B        20解决方法一:
SELECT
DISTINCT名称,
(ISNULL((selectSUM(A.数量)from库存表AWHEREA.名称=库存表.名称ANDA.状态='进货'),0)
-
ISNULL((selectSUM(A.数量)from库存表AWHEREA.名称=库存表.名称 ANDA.状态='销售'),0))AS库存数量
FROM
库存表

解决方法二():
SELECT名称,Sum(IIF(状态='进货',1,-1)*数量)as 库存数量From库存表GroupBy名称

解决方法三(Access):
SELECT名称,Sum(IIF(状态='进货',数量,0)-IIF(状态='销货',数量,0))as 库存数量From库存表GroupBy名称


<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击