sql简单总结

[size=medium]最近老是在搞sql,发现自己差好多。现在我将遇到的问题总结如下:[/size]

[size=large]一。查询申请智能建站管理权限的代理及分公司信息。[/size]
[size=medium]现在有四张表:agent_agent:代理表,agent_level:代理级别表,party:公司表,vzzjzgl_apply:智能建站管理权限申请表:
sql语句如下:[/size]

select *
from (select a.agent_code agent_code,
a.user_name user_name,
c.name sub_company,
d.agent_level || '级' agent_level,
( select x.check_state
from vzzjzgl_apply x
where x.agent_code = a.agent_code ),
( select xxx.apply_time
from vzzjzgl_apply xxx
where xxx.agent_code = a.agent_code ),
(select xxxx.operator
from vzzjzgl_apply xxxx
where xxxx.agent_code = a.agent_code
),
(select y.id
from vzzjzgl_apply y
where y.agent_code =
a.agent_code ),
(select yy.grant_cause
from vzzjzgl_apply yy
where yy.agent_code =
a.agent_code
) from
agent_agent a
inner join party c on a.organ_code = c.id
inner join agent_level d on a.agent_level_code =
d.agent_level_code)

where 1 = 1
order by agent_code


[size=large]二。查询申请及未申请智能建站管理权限的代理及分公司信息。[/size]

select *
from (select a.agent_code agent_code,
a.user_name user_name,
c.name sub_company,
d.agent_level || '级' agent_level,
(case when
( select x.check_state
from vzzjzgl_apply x
where x.agent_code = a.agent_code ) = '01'
then trim('已授权')
else trim('未授权')
end) is_grant,

(select xxx.grant_time
from vzzjzgl_apply xxx
where xxx.agent_code = a.agent_code) operate_time,
(case when (select xxxx.operator
from vzzjzgl_apply xxxx
where xxxx.agent_code = a.agent_code
) is not null then (select xxxx.operator
from vzzjzgl_apply xxxx
where xxxx.agent_code = a.agent_code)
else '---' end ) operator

from
agent_agent a
inner join party c on a.organ_code = c.id
inner join agent_level d on a.agent_level_code =
d.agent_level_code)

where 1 = 1
order by agent_code


[size=medium]说明:
1.注意case when then else end 的使用
2.如果选择一个表的字段为一个列,则要用空号然后将列的名称放在括号的外边:
例如选择 智能建站申请表的审批时间作为整个sql的‘操作时间’字段,如下:[/size]

,(select xxx.grant_time
from vzzjzgl_apply xxx
where xxx.agent_code = a.agent_code) operate_time,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值