String sql="select MANUFACTURE,count(MANUFACTURE) from STB_DEVICE group by MANUFACTURE";
这个语句是正确的,分布图的显示比例也是正确的,可是由于坐标用的是厂家ID,在分布图中只看到显示的ID不直观,用厂家名字比较好,但是STB_DEVICE表中没有MANUFACTURENAME字段,所要将sql语句改变成两表连接,内联,左外联都可以,可是不是语句有问题,就是查出来的比例不对。
查询没报错,但是分布图的比例不对的语句是:String sql="select MANUFACTURE_NAME,STB_DEVICE.MANUFACTURE_ID,(SELECT COUNT(MANUFACTURE_ID) FROM STB_DEVICE") FROM STB_DEVICE LEFT JOIN MANUFACTURE ON (STB_DEVICE.MANUFACTURE-_ID=MANUFACTURE.MANUFACTURE_ID) GROUP BY STB_DEVICE.MANUFACTURE_ID,MANUFACTURE_NAME ";
这种写法,关键是后面的group by , 该句的分组条件如何让它知道是根据STB_DEVICE表中的厂家id来比例分布的,最主要的是
STB_DEVICE表的分布,MANUFACTURE表只是用了他的MANUFACTURE_NAME字段,让他在STB_DEVICE的分布图上用名称显示而不是ID显示就可以了。
可是总是出现问题。说得有点乱,不懂的,我再重新说一下
3 个解决方案
#1
--不知道你是不是这样意思
select MANUFACTURE_NAME,countnum
from MANUFACTURE m,
(select MANUFACTURE_ID,count(MANUFACTURE_ID) countnum
from STB_DEVICE group by MANUFACTURE_ID) t
where m.MANUFACTURE_ID=t.MANUFACTURE_ID
#2
将你厂家表和硬件设备表通过关联字段连接起来就可以了
不知道是不是你说的情况:
SELECT a.MANUFACTURE_NAME,Count(b.MANUFACTURE_ID)
FROM MANUFACTURE a,STB_DEVICE b
WHERE a.MANUFACTURE_ID=b.MANUFACTURE_ID
GROUP BY a.MANUFACTURE_ID,a.MANUFACTURE_NAME
不知道是不是你说的情况:
SELECT a.MANUFACTURE_NAME,Count(b.MANUFACTURE_ID)
FROM MANUFACTURE a,STB_DEVICE b
WHERE a.MANUFACTURE_ID=b.MANUFACTURE_ID
GROUP BY a.MANUFACTURE_ID,a.MANUFACTURE_NAME
#3
我解决了,谢了^^
#1
--不知道你是不是这样意思
select MANUFACTURE_NAME,countnum
from MANUFACTURE m,
(select MANUFACTURE_ID,count(MANUFACTURE_ID) countnum
from STB_DEVICE group by MANUFACTURE_ID) t
where m.MANUFACTURE_ID=t.MANUFACTURE_ID
#2
将你厂家表和硬件设备表通过关联字段连接起来就可以了
不知道是不是你说的情况:
SELECT a.MANUFACTURE_NAME,Count(b.MANUFACTURE_ID)
FROM MANUFACTURE a,STB_DEVICE b
WHERE a.MANUFACTURE_ID=b.MANUFACTURE_ID
GROUP BY a.MANUFACTURE_ID,a.MANUFACTURE_NAME
不知道是不是你说的情况:
SELECT a.MANUFACTURE_NAME,Count(b.MANUFACTURE_ID)
FROM MANUFACTURE a,STB_DEVICE b
WHERE a.MANUFACTURE_ID=b.MANUFACTURE_ID
GROUP BY a.MANUFACTURE_ID,a.MANUFACTURE_NAME
#3
我解决了,谢了^^