Office中国论坛/Access中国论坛

标题: [讨论]试解读[求一SQL]热贴的SQL 解决方法 [打印本页]

作者: gzh97730    时间: 2006-3-30 01:34
标题: [讨论]试解读[求一SQL]热贴的SQL 解决方法
SELECT 物种, keyid, id,count(*)
FROM (SELECT a.[keyid], a.[ID], a.[物种] FROM b105a AS a left join b105a b
on a.keyid>=b.keyid AND a.物种 = b.物种 )
GROUP BY 物种, keyid,id order by 物种, id,keyid


关键语名: on a.keyid>=b.keyid

应该是笛卡尔积的一种用法。

如下:a,a_1为同一表, >= 为两表同一字段的关系

a      >=       a_1

1                 1

2                 2

5                 5

结果为:

表a字段值:1个1,2个2,3个5,

表a_1字段值:3个1,2个2,1个5.

如果count一下表a_1的字段 就会得出:

1              1

2              2

5              3

参考SQL语名:

SELECT a.a, count(a_1.a) AS 计数
FROM a AS a_1 INNER JOIN a ON a_1.a <= a.a
GROUP BY a.a;

是一种用来制作流水序号的好方法。

学习。。。




作者: zhanguoru    时间: 2006-3-30 04:01
能不能帮忙用access,把上面的内容写出来,这样看,偶看不懂,偶是新手,希望得您的帮助,谢谢!!
作者: gzh97730    时间: 2006-3-30 04:35
请参预例子,很好理解的。(题外话:如果你是菜鸟的话,那我是什么东西?老兄过谦了)[attach]16766[/attach]


[此贴子已经被作者于2006-3-29 20:36:36编辑过]


作者: zhanguoru    时间: 2006-3-30 04:42
谢谢!

顺便解释一下:

对于查询,我真的很菜.我的问题还在等人回复呢....

http://www.office-cn.net/forum.php?mod=viewthread&tid=38150
作者: gzh97730    时间: 2006-3-30 04:57
我看了你的表,这样冗余度太高了。建议两个表相同的字段(ChargeID、ChargeName、Spec)另建一表来储存,再用查阅字段来表示。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3