【【类似于主从表,如果从表无对应记录,如何显示主表记录那????】】】】
完整试图创建代码:
CREATE view v_custListShowInfo
as
select A.numCustId,
numCustKind=case A.numCustKind when 0 then N'目标客户' else N'现有客户' end,
B.nvcCustTypeName,
D.nvcCustLevelName,
A.dtCreateDate,
A.numCreateUserId,
A.numCreateGroupId,
A.numInduFirstId,
A.numInduSecondId,
A.numInduThirdId,
A.nvcCustName,
A.numCounId,
A.numProvId,
A.numCityId,
A.nvcDist,
A.nvcTelDistCode,
A.nvcTelNo,
A.nvcFaxDistCode,
A.nvcFaxNo,
nvcCustTel=isnull(A.nvcTelDistCode,'')+case A.nvcTelDistCode when '' then '' else '-' end+A.nvcTelNo,
C.nvcContPerson,
C.nvcContDept,
nvcCustContactTel=isnull(C.nvcContTelCode,'')+case C.nvcContTelCode when '' then '' else '-' end+C.nvcContTelNo
From
tbCustomerBasic as A,
tbCustomerContact as C,
tbVarCustomerType as B,
tbVarCustomerLevel as D
where
A.numCustTypeId=B.numCustTypeId
and A.numCustId=C.numCustId
and A.numCustLevelId=D.numCustLevelId
and C.numContId=(select top 1 numContId
from tbCustomerContact
where numCustId=A.numCustId)
现在问题 如果C中无对应记录 那么相应的A表记录也就不出来了
可是我想显示主表记录 这个时候 C表对应记录显示 ‘-’ 就可以了
我的msn soft_in@hotmail.com
大家帮忙 已经N次提问了 埃
问题点数:20、回复次数:12Top
1 楼txlicenhe(马可)回复于 2004-12-03 15:46:10 得分 4
SELECT ....
from A
left join b on ...
......
Top
2 楼netcoder(朱二)回复于 2004-12-03 15:46:38 得分 4
这样,把你的a\b\c表的建表语句都贴出来
再贴点insert数据的语句来Top
3 楼txlicenhe(马可)回复于 2004-12-03 15:47:11 得分 3
SELECT ....
from A
left join b on ...
......
Top
4 楼yyyjff(自己坚强的日子才精彩,坚强的心注定赢得幸福.)回复于 2004-12-03 15:50:15 得分 0
一个思路 我想 from C 的时候 对C进行个 union ‘-’,‘-’,‘-’,‘-’ 这样C肯定有记录了Top
5 楼netcoder(朱二)回复于 2004-12-03 15:53:56 得分 2
那你就先试试Top
6 楼yyyjff(自己坚强的日子才精彩,坚强的心注定赢得幸福.)回复于 2004-12-03 15:55:52 得分 0
可是 C.numContId 也不好union上啊
From
tbCustomerBasic as A,
--tbCustomerContact as C,
(select nvcContPerson,nvcContDept,nvcContTelCode, nvcContTelNo from tbCustomerContact union select '10',A.numcustid,'-','-','-','-') C,
tbVarCustomerType as B,
tbVarCustomerLevel as DTop
7 楼netcoder(朱二)回复于 2004-12-03 16:02:56 得分 2
那就先union,然后放到临时表里
Top
8 楼yyyjff(自己坚强的日子才精彩,坚强的心注定赢得幸福.)回复于 2004-12-03 16:05:51 得分 0
具体写起来 还是麻烦
因为 后面还有where 部分 也涉及到C表Top
9 楼netcoder(朱二)回复于 2004-12-03 16:06:48 得分 5
你的要求就很麻烦
你怎么不用左连接呢?Top
10 楼yyyjff(自己坚强的日子才精彩,坚强的心注定赢得幸福.)回复于 2004-12-03 16:19:29 得分 0
From tbCustomerBasic as A
inner join tbVarCustomerType as B on A.numCustTypeId=B.numCustTypeId
inner join tbCustomerContact as C
on A.numCustId=C.numCustId and
C.numContId=(select top 1 numContId
from tbCustomerContact
where numCustId=A.numCustId)
inner join tbVarCustomerLevel as D on A.numCustLevelId=D.numCustLevelId
去掉了where
也不好用啊Top
11 楼yyyjff(自己坚强的日子才精彩,坚强的心注定赢得幸福.)回复于 2004-12-03 16:25:52 得分 0
可以了Top
12 楼yyyjff(自己坚强的日子才精彩,坚强的心注定赢得幸福.)回复于 2004-12-03 16:26:10 得分 0
用的 left join 就ok 了Top
相关问题
- 主从表结构,主表插入新记录时,当插入关联字段后,从表的显示问题。
- 为什么主从表模式下,主表处于append状态时,从表只能新增一条记录?
- 请问左连接情况下,主从表的显示中主表记录如何才能只显示一次,而不是从表有几条主表记录重复显示
- 删除主表记录的问题
- 有主从两个表,为什么必须主表保存从表在新增的时候才显示记录,有没有解决的方法?
- 用clientdataset建立的主从表后,再想用clientdataset1.delete删除主表的记录,却被告知不能连带删除从表记录,请问高手该如何操作。
- 查询主表中关联表中没有的记录
- 在三层结构中,我想在客户端体现出主从表的记录,就象两层的一样,主表变化,从表也变化,应该怎么实现??谢谢。
- 如何在添加主表的记录时,子表自动添加与主表相关的字段.
- 急,主从表操作中,从表新加记录有错误




