|
(满意,......) (不满意,....) b 表(字段1,.....) (满意,......) (不满意,.....) 综合统计 a 表和 b 表中字段 1的比率, 即,(a 中的字段1字段1 ' 满意'所的条数 +b 表中字段1'满意'所点条数) /(a中记录条数+b中记录条数),即比率。 我问过一次不过在 delphi 不能通过。。。。。 |
|
|
|
难道上次那个语句还不行吗?你是什么数据库啊?
|
|
|
access .
|
|
|
SQL的GROUP BY 字段1 HAVING 字段1=‘满意’
方法这样了,你自己看看,SQL的分组 |
|
|
var a1,a2,b1,b2: integer;
pre: double; begin with adoquery1 do begin close; sql.clear; sql.text := 'select count(*) as a from a表 where 字段1 = 满意'; open; a1 := fieldbyname('a').integer; close; sql.clear; sql.text := 'select count(*) as a from b表 where 字段1 = 满意'; open; b1 := fieldbyname('a').integer; close; sql.clear; sql.text := 'select count(*) as a from a表 '; open; a2 := fieldbyname('a').integer; close; sql.clear; sql.text := 'select count(*) as a from b表 '; open; b2 := fieldbyname('a').integer; end; pre := (a1 + b1)/(a2 + b2) end; |
|
|
不好意思楼主;我对sql不熟悉;^_^;
|
|
|
SELECT CountDD/CountTotal AS Ratio
FROM [SELECT 1 AS tempfield, COUNT(*) AS CountDD FROM (SELECT * FROM info1 UNION SELECT * FROM info2) x WHERE x.info = '满意']. AS A LEFT JOIN [SELECT 1 AS tempfield,COUNT(*) AS CountTotal FROM (SELECT * FROM info1 UNION SELECT * FROM info2) y]. AS B ON A.tempfield=B.tempfield; |
|
|
都不行.....
|
|
|
ACCESS 嘛,我试过行啊
你可以先试试其中的每个子查询,看看 CountDD 和 CountTotal 的结果是否正确。 下面我作了一些改进,以防有两个表出现完全相同的记录。 SELECT CountDD,CountTotal,CountDD/CountTotal AS Ratio FROM [SELECT 1 AS tempfield, COUNT(*) AS CountDD FROM (SELECT *,1 FROM info1 UNION SELECT *,2 FROM info2) x WHERE x.info = '满意']. AS A LEFT JOIN [SELECT 1 AS tempfield,COUNT(*) AS CountTotal FROM (SELECT *,1 FROM info1 UNION SELECT *,2 FROM info2) y]. AS B ON A.tempfield=B.tempfield; |
|
|
gz!
|
|