三张表
表a,字段:custcode,custname(即客户代码,客户名称)
表b,字段:deptcode,deptname(即部门代码,部门名称)
表z, 字段: ckcode,ckname(即仓库代码,仓库名称)
表C(单据表):字段:number,custdept,inputdate,ckcode,type(即单号,客户或部门代码,录入日期,仓库代码,单据类型)
现在要在dbgrid中显示c表的内容
但是custdept代码要换成custname或deptname
******仓库代码要换成仓库名称,并且c表中的仓库代码有可能是空字符串,如为空字符串,则仓库名称也为空;*****************
这个select语句怎么写?
说明:
type字段,标识进货单还是部门领料单,它只有两个值:
'jh'为进货单,如type为'jh',则cuetdept代码必须到a表中找
'll'为领料单,如type为'll',则cusrdept代码必须到b表中找另外:我用ado+access,access数据库不支持case....end的sql语句
有其它解决办法也行!
此问题是对下面问题的补充:
http://expert.csdn.net/Expert/topic/2231/2231307.xml?temp=.3697779
大部分已解决,主要是如何把******中的问题加进去?
表a,字段:custcode,custname(即客户代码,客户名称)
表b,字段:deptcode,deptname(即部门代码,部门名称)
表z, 字段: ckcode,ckname(即仓库代码,仓库名称)
表C(单据表):字段:number,custdept,inputdate,ckcode,type(即单号,客户或部门代码,录入日期,仓库代码,单据类型)
现在要在dbgrid中显示c表的内容
但是custdept代码要换成custname或deptname
******仓库代码要换成仓库名称,并且c表中的仓库代码有可能是空字符串,如为空字符串,则仓库名称也为空;*****************
这个select语句怎么写?
说明:
type字段,标识进货单还是部门领料单,它只有两个值:
'jh'为进货单,如type为'jh',则cuetdept代码必须到a表中找
'll'为领料单,如type为'll',则cusrdept代码必须到b表中找另外:我用ado+access,access数据库不支持case....end的sql语句
有其它解决办法也行!
此问题是对下面问题的补充:
http://expert.csdn.net/Expert/topic/2231/2231307.xml?temp=.3697779
大部分已解决,主要是如何把******中的问题加进去?
解决方案 »
- IdPOP3控件收邮件会出现Content-Transfer-Encoding: base64
- 请教:关于用DELPHI开发一个ActiveX组件的问题!!!
- 文本文件导出导入问题!!!100分
- 做一个ActiveForm的ocx,需要用到外部DLL怎么办?
- ServerSocket采用线程阻塞式,程序运行正常,但无法关闭(关闭时无响应),请问原因何在???
- 请教 IntraWeb中的TMS的DBAdvWebGrid如何用ctNode实现明细行
- 发发牢骚,顺便散分
- 还是关于SMTP服务器需要身份验证的问题
- 关于类型的问题。对大家来说,应该很容易得分的。我给80点。
- Tblobfield(table.fieldbyname(photo.datafield))中TBlobField为何意?
- 关于DLL调用的返回值问题
- 请问ERP项目可否用Delphi开发?真的一定要Java开发吗?
where type='jh' and ckcode is not null
union all
select number,b.deptname as custdept,inputdate,ckcode,type from C left outer join a on c.custdept=b.deptcode
where type='ll' and ckcode is not null
union all
select number,custdept,inputdate,ckcode,type from C
where ckcode is null
FROM ((c LEFT JOIN a ON [a].[custcode]=[c].[custdept]) LEFT JOIN b ON [b].[deptcode]=[c].[custdept]) LEFT JOIN z ON [c].[ckcode]=[z].[ckcode];
from (select t1.number,iif(type='ll',deptname,name1) as
name,c.inputdate,c.ckcode,c.type
from (SELECT c.number, iif(type='jh',custname,custcode) as name1,
c.inputdate,c.ckcode ,c.type
FROM a RIGHT JOIN c ON a.custcode = c.custdept
) as t1 left join b on t1.name1=b.deptcode
) as t2 left join z on t2.ckcode=z.ckcode