找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 6566|回复: 21

SQL数据库语句问题

  [复制链接]
发表于 2010-5-21 08:19:18 | 显示全部楼层 |阅读模式
悬赏20金币未解决
我是SQL的初学者,下面这句话不知哪儿错了,请各位大哥帮帮忙,纠正一下


create table jf_sa_fahuobiao (cCuscode  VARCHAR(20), cCusName VARCHAR(98),isum  money,qc money)
Insert into jf_sa_fahuobiao (ccuscode,cCusName,isum,qc)
select DispatchList.cCuscode,DispatchList.cCusName, sum(DispatchLists.isum) isum  from DispatchList right JOIN DispatchLists on DispatchList.DLID = DispatchLists.DLID WHERE (dDate >= CONVERT(DATETIME, '2009-11-17 00:00:00', 102)) and (dDate <= CONVERT(DATETIME, '2010-04-17 00:00:00', 102)),  
       sum(DispatchLists.isum) qc  from DispatchList right JOIN DispatchLists on DispatchList.DLID = DispatchLists.DLID
       WHERE (dDate < CONVERT(DATETIME, '2009-11-17 00:00:00', 102))  
       GROUP BY ccuscode,cCusName

主要是想将dispatchlists中isum值按ccuscode分组求和,并按日期区间放到 jf_sa_fahuobiao表isum和qc 的字段中.请大家帮一下吧!

验证时老时提示第五行,号附近有误!

发表于 2010-5-21 09:22:48 | 显示全部楼层
等待高手                  等 待
回复

使用道具 举报

发表于 2010-5-25 17:01:21 | 显示全部楼层
sum(DispatchLists.isum) isum是不是这点有问题。第四行。还有第5行right JOIN 没用过。不知道对不对。
回复

使用道具 举报

发表于 2010-6-4 09:28:32 | 显示全部楼层
帮你顶下了。。。。。
回复

使用道具 举报

发表于 2010-6-4 11:44:50 | 显示全部楼层
dDate >= CONVERT(DATETIME, '2009-11-17 00:00:00', 102)
如果要用大于等于,必须全部装换为字符类型
回复

使用道具 举报

发表于 2010-6-4 11:45:24 | 显示全部楼层
如果要用日期类型比较,用between and
回复

使用道具 举报

发表于 2010-6-4 11:46:32 | 显示全部楼层
where 后面怎么还有,号?
回复

使用道具 举报

发表于 2010-6-4 12:19:04 | 显示全部楼层
学习一下。
回复

使用道具 举报

发表于 2010-6-6 16:28:33 | 显示全部楼层
我也感觉是在使用时间进行比较时,应该使用BETWEEN...and 比较好,直接使用>=这样的进行时间比较就会报错。
回复

使用道具 举报

发表于 2010-6-29 19:24:39 | 显示全部楼层
create table jf_sa_fahuobiao (cCuscode  VARCHAR(20), cCusName VARCHAR(98),isum  money,qc money)
Insert into jf_sa_fahuobiao (ccuscode,cCusName,isum,qc)
--前面的都没问题
select DispatchList.cCuscode,DispatchList.cCusName, sum(DispatchLists.isum) isum  from DispatchList right JOIN DispatchLists on DispatchList.DLID = DispatchLists.DLID WHERE (dDate >= CONVERT(DATETIME, '2009-11-17 00:00:00', 102)) and (dDate <= CONVERT(DATETIME, '2010-04-17 00:00:00', 102)),  --这里出现一个逗句,where 语句后面条件分隔不是用逗号的。

<---

       sum(DispatchLists.isum) qc
from DispatchList right JOIN DispatchLists on DispatchList.DLID = DispatchLists.DLID
       WHERE (dDate < CONVERT(DATETIME, '2009-11-17 00:00:00', 102))  

-->  这一块我估计你是重复了吧?  这一句好像没什么意义!
       GROUP BY ccuscode,cCusName
回复

使用道具 举报

发表于 2010-11-15 17:09:18 | 显示全部楼层
看不懂,学习一下。
回复

使用道具 举报

发表于 2010-11-16 15:05:12 | 显示全部楼层
WHERE 后面怎么可以用逗号?
回复

使用道具 举报

发表于 2011-1-9 17:11:36 | 显示全部楼层
把第五行的,号删除即可
回复

使用道具 举报

发表于 2011-1-16 12:11:35 | 显示全部楼层
不错。支持!!!
回复

使用道具 举报

发表于 2011-1-22 16:31:58 | 显示全部楼层
本帖最后由 xingxingd32 于 2011-1-22 16:33 编辑

大家没有注意分析楼主的意图.
他是分步在做一个表并且做查询.
1.新建了一个名为:jf_sa_fahuobiao的表.并设置了一些字段.
create table jf_sa_fahuobiao (cCuscode  VARCHAR(20), cCusName VARCHAR(98),isum  money,qc money)
(这步没错)
2.向新表中插入值,这句错得离谱了.
Insert into jf_sa_fahuobiao (ccuscode,cCusName,isum,qc)
正确的赋值语句去网上找.
3.汇总查询语句完全没了章法.
select DispatchList.cCuscode,DispatchList.cCusName, sum(DispatchLists.isum) isum  from DispatchList
       right JOIN DispatchLists on DispatchList.DLID = DispatchLists.DLID
WHERE (dDate >= CONVERT(DATETIME, '2009-11-17 00:00:00', 102)) and (dDate <= CONVERT(DATETIME, '2010-04-17 00:00:00', 102)) 这里语句已经结束了,但聚合函数Group by却在错误的地方
       这里缺少关键字SELECTsum(DispatchLists.isum) qc  from DispatchList right JOIN DispatchLists on DispatchList.DLID = DispatchLists.DLID
       WHERE (dDate < CONVERT(DATETIME, '2009-11-17 00:00:00', 102))  
       GROUP BY ccuscode,cCusName
这段语句表达完全错误了.我看不懂,只能说这么多.楼主无非就是想写一个汇总查询语句.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-11-22 00:46 , Processed in 0.079134 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表