求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
相关问答:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jas ......
sql的软件在哪里可以下啊!在网上找了蛮多都用不了啊
随便搞一D版吧,
迅雷第一个就可以用
2000,2005都这样
http://119.147.41.16/down?cid=0698C2D64D7D637D90A6D2482298E6717D4F15CD&t=2&fmt=-1 ......
例子程序见附件,用Delphi 7进行编译
问题代码为
Delphi(Pascal) code:
if Node.ChildNodes <> nil then
begin
for i := 0 to Node.ChildNodes.Count - 1 do
begin
cNode := N ......
我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......