求sql语句 - Delphi / 数据库相关
access表如下:
地点 数量 种类
a 2 甲
a 2 乙
b 2 甲
c 3 甲
c 3 乙
d 5 甲
d 3 甲
d 5 乙
e 1 乙
查询语句1:SELECT 地点,sum(数量) from data group by 地点
结果为:
地点 Expr1001
a 4
b 2
c 6
d 13
e 1
查询语句2:SELECT 地点,sum(数量) from data where 种类="甲"group by 地点
结果为:
地点 Expr1001
a 2
b 2
c 3
d 8
我想要的是,当查询语句是2的时候,得到如下结果:
地点 Expr1001
a 2
b 2
c 3
d 8
e 0
就是说:当用语句2的时候,地点字段的值要全部列出来,
这个Group BY 可能完在不了这个功能,
最好再和所有的地点字段Join一下,
SELECT * from ((SELECT DISTINCT 地点 from data) AS a LEFT JOIN (SELECT 地点,sum(数量) from data where 种类="甲"group by 地点) as b ON a.地点=b.地点)
用 having 来筛选
看错了,你还要显示为0,那么就用case来处理第二列
SELECT 地点,iif(sum(数量),0,0,sum(数量)) from data where 种类="甲"group by 地点
IIf(expr, truepart, falsepart)
IIf 函数的语法包含以下参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。)
参数 说明
expr 必选。要计算的表达式。
truepart 必选。expr 为 True 时返回的值或表达式。
falsepart 必选。expr 为 False 时返回的值或表达式。
说明
由于 IIf 会计算 tru
相关问答:
现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......
如何在SQL2005中设定定时作业,比如说定时清理某些表的数据,
或者是定时的将某些表的数据导出excel!
在线等待,急急急,最好是详细步骤!
之前我做的作业有点问题!
帮UP
参考:http://hi.baidu.com/toiota ......
tab1 字段:billdate,goodsid,incount,inmoney,outcount,outmoney,endprice,endcount,endamt
tab2 字段:goodsid,goodskind(商品类型)
tab3 字段:goodskind(商品类型),kindname
结果:
得到商品类型在一段时间 ......
例子程序见附件,用Delphi 7进行编译
问题代码为
Delphi(Pascal) code:
if Node.ChildNodes <> nil then
begin
for i := 0 to Node.ChildNodes.Count - 1 do
begin
cNode := N ......
请教高手:
以下是数据库中的三条记录,英文为字段名称
id planname TaskBeginTime Status
329 2010年03 ......