我有一类似财务项目的两个表,一个为科目表(t_km),字段分别为kmid(科目id),kmmc(科目名称),sjkm(上级科目,即它的父科目),科目表为两级科目结构。另一表为凭证表(t_pzb),pzno(凭证号),yjid(一级科目id),ejid(二级科目id),我要求的sql语句结果为:当选某凭证号时,可列出如下内容,凭证号,一级科目名称,二级科目名称。
例如:科目表的内容为:
kmid kmmc sjkm
1 土地价款 0
2 政府地价配套费 1
凭证表的内容为:
pzno yiid ejid
001 1 2
通过这两个表的关联,我要显示的结果是:
001,土地价款,政府地价配套费
请教该sql语句如何写?
例如:科目表的内容为:
kmid kmmc sjkm
1 土地价款 0
2 政府地价配套费 1
凭证表的内容为:
pzno yiid ejid
001 1 2
通过这两个表的关联,我要显示的结果是:
001,土地价款,政府地价配套费
请教该sql语句如何写?
, yimc=(select kmmc from t_km where kmid=yjid)
, ejmc=(select kmmc from t_km where kmid=ejid)
from t_pzb
a.pzno,
max(case b.kmid when a.yiid then b.kmmc end),
max(case b.kmid when a.ejid then b.kmmc end)
from
凭证表 a,科目表 b
group by
a.pzno
select pzno+','+
(select kmmc from t_km where kmid=t_pzb.yiid)+','+
(select kmmc from t_km where kmid=t_pzb.ejid) from t_pzb-- 001,土地价款,政府地价配套费select pzno,
kmmc1=(select kmmc from t_km where kmid=t_pzb.yiid),
kmmc2=(select kmmc from t_km where kmid=t_pzb.ejid) from t_pzb-- 001 土地价款 政府地价配套费
b.kmmc as yjkmmc,
c.kmmc as ejkmmc
from t_pzb a, t_km b, t_km c
where a.yiid=b.kmid and a.ejid=c.kmid
(select k.kmmc from t_km k,t_pzb p where p.ejid = k.kmid and p.pzno = '001') ejmc from t_pzb where pzno = '001';应该还有更简单的办法的。。
a.pzno,
(select kmmc from 科目表 where kmid=a.yiid),
(select kmmc from 科目表 where kmid=a.ejid)
from 凭证表 a/**
pzno
-------------------- -------------------- --------------------
001 土地价款 政府地价配套费(所影响的行数为 1 行)
**/