您的位置:程序门 -> web 开发 -> asp



让大家见笑了,如何创建一个视图把两个表合并


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


让大家见笑了,如何创建一个视图把两个表合并[已结贴,结贴人:meng_fang]
发表于:2007-01-12 09:55:56 楼主
第一个表fee:
feeid                 feedate                 grpid             feemoney               inout
(支出id)     (支出日期)         (支出部门)         (支出金额)           默认值为0
第二个表tblsales:
sellid           selldate               grpid               sales                         inout
(收入id)       收入的日期       (收入部门)       (收入金额)               默认值为1

我知道这样写查询语句肯定有错:

select   feedate,grpid,-feemoney   from   fee   union   select   selldate,grpid,+sales   from   tblsales

我想要的效果是inout默认值为0时显示的是负数-feemoney的值,
inout默认值为1时显示的是正数+sales的值.
发表于:2007-01-12 10:05:591楼 得分:5
我也想知道,可惜没人告诉我们
对了
要是两个表有关系的话就好了
  可以做表连接   一个主表一个副表   lef   join   就可以了
可问题是根本不存在关系
发表于:2007-01-12 10:41:362楼 得分:0
是不是要显示成这样
feeid                 feedate                 grpid             feemoney               inout
(支出id)     (支出日期)         (支出部门)         (支出金额)           默认值为0
(支出id)     (支出日期)         (支出部门)         (支出金额)           默认值为0
(支出id)     (支出日期)         (支出部门)         (支出金额)           默认值为0
(收入id)       收入的日期       (收入部门)       (收入金额)               默认值为1
(收入id)       收入的日期       (收入部门)       (收入金额)               默认值为1
(收入id)       收入的日期       (收入部门)       (收入金额)               默认值为1
。。。。。。。。。。。
发表于:2007-01-12 10:51:323楼 得分:0
是的,但如果是支出显示的是负数(-feemoney),收入时显示的是正数(+sales)。
发表于:2007-01-12 10:59:404楼 得分:0
显示的效果差不多就这种形式:

feedate                 grpid             feemoney               inout
2006-10-1               6                     +2000                         1
2006-11-2               3                     -1000                         0
2006-12-6               6                     -500                           0
2007-1-10               3                     +4000                         1  
发表于:2007-01-12 11:00:265楼 得分:0
select   feeid           ,       feedate       ,           grpid         ,     -feemoney       ,         inout   from   fee
union   all
select   sellid           ,selldate       ,         grpid           ,     sales           ,               inoutfrom   tblsales
这个应该没错   应该可以接分吧!
发表于:2007-01-12 11:01:556楼 得分:15
select   feeid   ,   feedate   ,grpid     ,   -feemoney   ,inout   from   fee
union   all
select   sellid   ,selldate   ,grpid   ,sales   ,   inoutfrom   tblsales
呵呵   逗号错了!
发表于:2007-01-12 11:13:467楼 得分:0
create   view   v_test  
as  
select   [date],grpid,(case   inout   when   0   then   -fee   when   1   then   fee   else   0   end)   as   fee  
from  
(  
select   feedate   as   date,grpid,inout,feemoney   as   fee  
from   fee  
union   all  
select   selldate   as   date,grpid,inout,sales   as   fee  
from   tblsales  
)   a  

呵呵,知道了!
发表于:2007-01-12 11:24:158楼 得分:0
不过不知道这里的-fee里的-是否是代表负号,可以直接进行计算。。。
发表于:2007-01-12 12:06:319楼 得分:0
可以计算,你写成0-fee都行
发表于:2007-01-12 13:47:2410楼 得分:0
嗯,谢谢楼上的...

再问一下为什么我用下面的代码实现不了连接查询这个视图的内容?

<%
set   dataconn   =   server.createobject( "adodb.connection ")   '建立连接对象
        dataconn.open   "dsn=microsoft.jet.oledb.4.0;server=app_server;uid=sa;pwd=520;app=microsoft   (r)   developer   studio;wsid=app_server;regional=yes "
        set   cmdtemp   =   server.createobject( "adodb.command ")   '建立命令对象
        set   rst=   server.createobject( "adodb.recordset ")   '建立记录集对象
        cmdtemp.commandtext   =   "v_test   "
        cmdtemp.commandtype   =   2
        set   cmdtemp.activeconnection   =   cust
        rst.open   cmdtemp,   ,   1,   3   '生成查询结果
%>

连接数据库sql的id:sa
                        密码为:520
                        数据库名字:cust
                        本机的ip:192.168.2.100
                        视图名字:v_test

发表于:2007-01-12 13:49:2811楼 得分:0
出现以下错误:

microsoft   ole   db   provider   for   odbc   drivers   错误   '80004005 '  

[microsoft][odbc   驱动程序   管理器]   未发现数据源名称并且未指定默认驱动程序  


第一次试着想用视图查询....
发表于:2007-01-12 16:29:1312楼 得分:0
你有dsn文件吗?你可以试试我下面的代码
<%    
 
'修改以下信息以适合您的网站
'---------------------------------------------------------------------------
dbuid= "sa " '数据库登陆名
dbpwd= "520 " '数据库密码
dbname= "cust " '数据库名称
dbip= "192.168.2.100 " '数据库所在地址,如果是本地数据库则为:(local)
'---------------------------------------------------------------------------
set   conn=server.createobject( "adodb.connection ")
conn.open     "provider=sqloledb.1;data   source= "&dbip& ";initial   catalog= "&dbname& ";persist   security   info=true;user   id= "&dbuid& ";password= "&dbpwd& ";connect   timeout=30 "
 
%>
发表于:2007-01-12 16:30:3113楼 得分:0
跪求分数,我有问题要请教大虾们,所以需要分数   :(


快速检索

最新资讯
热门点击