请问这个语句写的对吗???可以这样子写吗???
SELECT ks_id, f_type, sum(total)
from(SELECT ks_id, f_type, total,Exec_Ks,Odate
FROM Feetable
WHERE (Exec_Ks =3202) AND (Odate >= '2005-05-01 00:00') AND (Odate <= '2005-05-31 23:59') AND (F_TYPE IN ('材料费', '磁共振'))
union all
SELECT ks_id, f_type, total,Exec_Ks,Odate
FROM Feetableout
WHERE (Exec_Ks =3202) AND (Odate >='2005-05-01 00:00') AND (Odate <= '2005-05-31 23:59') AND (F_TYPE IN ('材料费', '磁共振')))
group by ks_id, f_type
请各位高手帮我看一下个语句,如果不对,请问应该怎么写??
先谢谢了!!
问题点数:0、回复次数:7Top
1 楼xueguang(xg)回复于 2005-06-03 17:52:14 得分 0
应该可以Top
2 楼wangzhj12(我想说)回复于 2005-06-03 18:00:16 得分 0
谢谢楼上朋友的回答,可是我怎么也执行不了!查询不出结果!Top
3 楼judy_wane(小依达)回复于 2005-06-03 18:04:04 得分 0
不对!!~~~这是个完全错误的
首先union all两头的SELECT 语句后面的字段个数必须是一致的,
而且数据类型的顺序也必须是一致的!!可以说说你要做什么,想别的办法!!Top
4 楼whatsouta(某疯子)回复于 2005-06-03 18:06:32 得分 0
SELECT ks_id, f_type, sum(total)
from(SELECT ks_id, f_type, total,Exec_Ks,Odate
FROM Feetable
WHERE (Exec_Ks =3202) AND (Odate >= '2005-05-01 00:00') AND (Odate <= '2005-05-31 23:59') AND (F_TYPE IN ('材料费', '磁共振')) \\把这里的最后一个括号去掉试试
union all
SELECT ks_id, f_type, total,Exec_Ks,Odate
FROM Feetableout
WHERE (Exec_Ks =3202) AND (Odate >='2005-05-01 00:00') AND (Odate <= '2005-05-31 23:59') AND (F_TYPE IN ('材料费', '磁共振')))
group by ks_id, f_type
难道你的运行环境没有报错吗??Top
5 楼wangzhj12(我想说)回复于 2005-06-03 18:25:52 得分 0
我想把feetable和feetableout两个表按一定的条件连在一起,然后按ks_id, f_type这两个字段分组汇总total这个字段Top
6 楼caiheng520(菜鸟)回复于 2005-06-03 19:00:02 得分 0
何必这么麻烦啊,把两个表用内连接连接起来不行???
可以的话告诉我一声啊,呵呵!Top
7 楼judy_wane(小依达)回复于 2005-06-03 19:56:40 得分 0
楼主能不能说得再清楚点???或者是把表结构列出来,说说是想得到哪几列,这样我们也好思考一点嘛!!!!!Top




