表格如下
NAME PART REUSLT
a MM 0
b MM 1
c MM 2
d GG 1
e GG 2
f OO 1
G OO 1结果如下
PART REUSLT=0 REUSLT=1 REUSLT=2
MM 1 1 1
GG 0 1 1
OO 0 2 0就是求同一PART下不同REUSLT的总数
我用INNER JOIN PART相等的话 当没有数据时不会返回0 这个该怎么解决
NAME PART REUSLT
a MM 0
b MM 1
c MM 2
d GG 1
e GG 2
f OO 1
G OO 1结果如下
PART REUSLT=0 REUSLT=1 REUSLT=2
MM 1 1 1
GG 0 1 1
OO 0 2 0就是求同一PART下不同REUSLT的总数
我用INNER JOIN PART相等的话 当没有数据时不会返回0 这个该怎么解决
解决方案 »
- 视图性能问题
- 各位大侠们,能给我们这些oracle的菜鸟指点下经验不?
- 急求SQL
- 更改用户权限时不知怎么把表空间的表全删掉了,数据全丢了,怎么恢复?急
- 求sql语句!
- 如何将一另一台机器的数据库导出到本机上
- 有谁用过JAVA存储过程吗
- 在win2000 server中安装Oracle9i后,独立启动时录入用户名及密码总不能成功,怎么办?
- 优化问题
- 创建与 Oracle的SQL模型连接时出错:The Network Adapter could not establish the connection
- oracle实现类似于Java语言中String的split方法, 达人进!
- 关于表关联批量更新。
WITH tab AS(
SELECT 'a' name, 'MM' part, 0 result FROM dual UNION ALL
SELECT 'b', 'MM', 1 FROM dual UNION ALL
SELECT 'c', 'MM', 2 FROM dual UNION ALL
SELECT 'd', 'GG', 1 FROM dual UNION ALL
SELECT 'e', 'GG', 2 FROM dual UNION ALL
SELECT 'f', 'OO', 1 FROM dual UNION ALL
SELECT 'G', 'OO', 1 FROM dual
)
--以上是测试数据
select part,
Sum(Decode(result,0,1,0)) "REUSLT=0",
Sum(Decode(result,1,1,0)) "REUSLT=1",
Sum(Decode(result,2,1,0)) "REUSLT=2"
FROM tab
GROUP BY part
ORDER BY part --结果:
PART REUSLT=0 REUSLT=1 REUSLT=2
----------------------------------------
GG 0 1 1
MM 1 1 1
OO 0 2 0