求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
相关问答:
已知Python 中:
s = unicode("测试", "gb2312")
s = u'\u6d4b\u8bd5'
print s
测试
在Delphi里面如何将\u6d4b\u8bd5这样的还原成Gb2312的汉字呢?
找到个方法
......
今天做了一个存储过程 环境是SQL2000数据库
大致如下
建立临时表
定义员工游标
循环员工(属于1个公司)
......
字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......
我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间
Id value state dattime
101 32.3 0 ......