gubing3370 发表于 2010-5-21 08:19:18

SQL数据库语句问题

我是SQL的初学者,下面这句话不知哪儿错了,请各位大哥帮帮忙,纠正一下


create table jf_sa_fahuobiao (cCuscodeVARCHAR(20), cCusName VARCHAR(98),isummoney,qc money)
Insert into jf_sa_fahuobiao (ccuscode,cCusName,isum,qc)
select DispatchList.cCuscode,DispatchList.cCusName, sum(DispatchLists.isum) isumfrom 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) qcfrom 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 的字段中.请大家帮一下吧!

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

dsly 发表于 2010-5-21 09:22:48

等待高手                  等 待

dm725 发表于 2010-5-25 17:01:21

sum(DispatchLists.isum) isum是不是这点有问题。第四行。还有第5行right JOIN 没用过。不知道对不对。

adun 发表于 2010-6-4 09:28:32

帮你顶下了。。。。。

naojin 发表于 2010-6-4 11:44:50

dDate >= CONVERT(DATETIME, '2009-11-17 00:00:00', 102)
如果要用大于等于,必须全部装换为字符类型

naojin 发表于 2010-6-4 11:45:24

如果要用日期类型比较,用between and

naojin 发表于 2010-6-4 11:46:32

where 后面怎么还有,号?

jclik 发表于 2010-6-4 12:19:04

学习一下。

tiange7801 发表于 2010-6-6 16:28:33

我也感觉是在使用时间进行比较时,应该使用BETWEEN...and 比较好,直接使用>=这样的进行时间比较就会报错。

develop2010 发表于 2010-6-29 19:24:39

create table jf_sa_fahuobiao (cCuscodeVARCHAR(20), cCusName VARCHAR(98),isummoney,qc money)
Insert into jf_sa_fahuobiao (ccuscode,cCusName,isum,qc)
--前面的都没问题
select DispatchList.cCuscode,DispatchList.cCusName, sum(DispatchLists.isum) isumfrom 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

dengbo04051226 发表于 2010-11-15 17:09:18

看不懂,学习一下。

zhangyadong110 发表于 2010-11-16 15:05:12

WHERE 后面怎么可以用逗号?

hnsunjiange 发表于 2011-1-9 17:11:36

把第五行的,号删除即可

fyz1223 发表于 2011-1-16 12:11:35

不错。支持!!!

xingxingd32 发表于 2011-1-22 16:31:58

本帖最后由 xingxingd32 于 2011-1-22 16:33 编辑

大家没有注意分析楼主的意图.
他是分步在做一个表并且做查询.
1.新建了一个名为:jf_sa_fahuobiao的表.并设置了一些字段.
create table jf_sa_fahuobiao (cCuscodeVARCHAR(20), cCusName VARCHAR(98),isummoney,qc money)
(这步没错)
2.向新表中插入值,这句错得离谱了.
Insert into jf_sa_fahuobiao (ccuscode,cCusName,isum,qc)
正确的赋值语句去网上找.
3.汇总查询语句完全没了章法.
select DispatchList.cCuscode,DispatchList.cCusName, sum(DispatchLists.isum) isumfrom 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) qcfrom DispatchList right JOIN DispatchLists on DispatchList.DLID = DispatchLists.DLID
       WHERE (dDate < CONVERT(DATETIME, '2009-11-17 00:00:00', 102))
       GROUP BY ccuscode,cCusName
这段语句表达完全错误了.我看不懂,只能说这么多.楼主无非就是想写一个汇总查询语句.
页: [1] 2
查看完整版本: SQL数据库语句问题