注册 登录
编程论坛 SQL Server论坛

请帮帮忙,看看这个查询要怎么写?谢谢

pn_lwl 发布于 2012-11-22 22:36, 848 次点击
有三个表:
客户档案:                             
客户编号,客户,首营证照过期提示
1         张三   1
2         李四   1
3         王五   0
首营证照名称:
序号,证照名称
1       营业执照
2       经营许可证
3       税务登记证
首营企业证照:
证照序号,客户编号,登记日期,       证照期限
1          1        2012.01.01  2013.01.01
1          2        .........     .......
2          2        .........     ............
我希望得到的结果是:
临时表:
客户编号,客户证照名称,登记日期,       证照期限
1          营业执照    2012.01.01  2013.01.01
1          经营许可证  null                null
1          税务登记证   null               null
2          营业执照     2012.01.01  2013.01.01
2          经营许可证   2012.01.01  2013.01.01
2          税务登记证   null               null

11 回复
#2
半杯清茶2012-11-23 09:44
三张表关联起来查询然后插入到临时表里  select t1.X,t2.y.t3.z ... into  #temptable from t1,t2,31 where t1.khbh=t3.khbh and t2.xh =t3.xh
#3
pn_lwl2012-11-23 12:49
谢谢半杯清茶!
select a.客户编号,a.客户,b.序号,b.证照名称,c.登记日期,证照期限 from 客户档案 as a,首营证照名称 as b,首营企业证照 as c where a.客户编号=c.客户编号 and b.序号=c.证照序号
这样写是吗?结果还是不对:
客户编号,客户证照名称,登记日期,       证照期限
1          营业执照    2012.01.01  2013.01.01
2          营业执照     2012.01.01  2013.01.01
2          经营许可证   2012.01.01  2013.01.01
Null的记录不会显示
#4
半杯清茶2012-11-23 14:28
用连接来查询,具体写你思考一下?也可以查一下连接的类型,然后思考一下该怎么连接,可以得到你要的效果的。
#5
pn_lwl2012-11-23 17:12
清茶兄,能否帮忙写出来,小弟确实弄不来,谢谢了!
#6
wfpanskxin2012-11-23 18:07
回复 楼主 pn_lwl
客户档案:AS  ClientFile
私营证照:AS PersonalCard
企业证照:AS CompanyCard

SELECT CF.序号,PC.证照名称,CC.登记日期,CC.证照期限 FROM ClientFile AS CF
JOIN CompanyCard AS CC
ON CC.客户编号= CF.序号
JOIN PersonalCard AS PC
ON CC.证照序号 =  PC.序号
#7
pn_lwl2012-11-23 22:26
回复 6楼 wfpanskxin
谢谢,之前我也是这样写的:
SELECT a.客户编号,c.序号,c.证照名称,b.登记日期,b.证照期限 FROM 客户档案 AS a
JOIN 首营企业证照 AS b
ON a.客户编号= b.客户编号
JOIN 首营证照名称 AS c
ON b.证照序号 =  c.序号
但NULL的记录不会出来,只会出现B表有的记录
#8
半杯清茶2012-11-24 09:45
a : 客户档案
b: 首营证照
c: 首营企业
select t.khph,t.zzmc,c.djrq,c.zzgq from (select a.khph,a.kh,b.xh,b.zzmc from khda  a,syzz b)t left join sqqy c
on  t.xh =c.xh and  t.khph=c.khph
#9
半杯清茶2012-11-24 09:48
有时在实际写sql 过程中,适当的时候也需要迪卡尔集的,你思考一下,是不是这样?
#10
半杯清茶2012-11-24 09:52
select t.khph,t.zzmc,c.djrq,c.zzgq from (select a.khph,a.kh,b.xh,b.zzmc from khda  a,syzz b)t left join sqqy c
on  t.xh =c.xh and  t.khph=c.khph
#11
半杯清茶2012-11-24 09:52
这个论坛我觉得在刷新上好像有些问题。
#12
pn_lwl2012-11-24 15:46
感谢清茶兄,问题终于解决了!!!
1