| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1066 人关注过本帖
标题:救助一个人员查询问题,
只看楼主 加入收藏
hq6889
Rank: 2
等 级:论坛游民
帖 子:26
专家分:11
注 册:2013-10-3
收藏
得分:0 
谢谢楼上各位。指点。
2014-04-09 17:39
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用TonyDeng在2014-4-9 17:05:25的发言:


你也意識到這個問題了!我說過,很多人的提問,你們不要給他就題做題,最好從根子上解決,否則你給他實現了所問的,祗會誤導他以爲設計不重要,繼續在錯誤的道路上越走越遠,到最後徹底崩潰,再來求人,就是神仙也難救。多問他幾句就不耐煩,衹要誰給他實現了當前想要的,就當誰是恩人,各壇上這種人佔大多數。
我意识到了这个问题已有一段时间,只是以前不好意思指出,最近几次回复中我就一直在向提问者指出这个问题。其实,我在自己写的《入门手册》改版中为什么要加上表的设计这一章节,就是因为在坛子里发现了这个现象,想写在书里供大家下载后纠正。只是可惜,正如你所言,好像新手都对表文件的设计重要性不以为然。所以,我现在对于表文件有严重缺陷的也采取提出问题,不直接给代码的方式了。
2014-04-10 08:53
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:5 
楼主遇到的问题在实际应用中有一定的代表性,如果使用代码,逻辑上非常简单,但代码稍长(假设三个表分别是 T1,T2,T3):
程序代码:
CLOSE TABLES ALL
SELECT * FROM t1 INTO CURSOR curResult READWRITE
DIMENSION aTables[2]
aTables[1] = 't2'
aTables[2] = 't3'
SELECT 0
FOR EACH cTable IN aTables
    USE (cTable)
    SCAN
        SCATTER NAME oRec
        SELECT curResult
        LOCATE FOR 编号 = oRec.编号
        IF FOUND()
            IF oRec.高血压
                REPLACE 高血压 WITH .t.
            ENDIF
            IF oRec.糖尿病
                REPLACE 糖尿病 WITH .t.
            ENDIF
            IF oRec.精神病
                REPLACE 精神病 WITH .t.
            ENDIF
        ELSE
            INSERT INTO curResult FROM NAME oRec
        ENDIF
    ENDSCAN
NEXT
USE
SELECT curResult
GO TOP
BROWSE
运行结果如下:
图片附件: 游客没有浏览图片的权限,请 登录注册

如果使用一个 SQL 语句,确实有一定难度,如果作者不介意结果中的.T.显示为 1,.F. 显示为 0的话,则代码相对较简单:
SELECT 编号,姓名,SUM(IIF(高血压,1,0)) 高血压,SUM(IIF(糖尿病,1,0)) 糖尿病,SUM(IIF(精神病,1,0)) 精神病 ;
    FROM (SELECT * FROM t1 UNION SELECT * FROM t2 UNION SELECT * FROM t3) t4 ;
    GROUP BY 编号,姓名
查询结果如下:
图片附件: 游客没有浏览图片的权限,请 登录注册


泉城飞狐
2014-04-10 09:35
快速回复:救助一个人员查询问题,
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030199 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved