该存储过程返回一结果集
在查询分析器及视图中执行只需要几秒钟.
但在delphi调用则返回"超时已过期".
我用adodataset调用。当我将timeout时间设为0后,没提示出错,但需要二分多钟结果才出来。
为什么在delphi中调用会这样。
在查询分析器及视图中执行只需要几秒钟.
但在delphi调用则返回"超时已过期".
我用adodataset调用。当我将timeout时间设为0后,没提示出错,但需要二分多钟结果才出来。
为什么在delphi中调用会这样。
解决方案 »
- usb摄像头回调函数显示图片问题??
- Com+客户须要安装组件吗? 里面有问题超详细描述。
- 鞋业的有关尺寸与颜色的处理方式
- 为什么ADO连接以后就无法断开?
- 读取图象时,出现JPEG Error #52 错误??
- DelForExp vs Code Formatter
- 谁用过价格只要3999、4999的winbook笔记本?感觉如何,发表一下看法。
- 对不起 刚才发出信息时正好掉线! 利用copyfile()函数出现的错误??
- delphi中如何实现汉字分行问题
- 关于不能重复启动程序的问题
- 求救!!用一个服务程序来控制windowsXP的登录!
- 问一个弱弱的问题?有没有什么小工具可以和outlook一样收取exchange server的邮件?
if @index=45
begin
SELECT 客户id, 客户名称, SUM(数量) AS 数量, SUM(件数) AS 件数, SUM(金额)
AS 金额, SUM(成本) AS 成本, SUM(毛利) AS 毛利
FROM (SELECT 客户ID, 客户名称, 分类ID, SUM(数量) AS 数量, SUM(件数) AS 件数,
SUM(金额) AS 金额, SUM(成本) AS 成本, SUM(毛利) AS 毛利
FROM (SELECT khhz.客户ID, dbo.[代码_客户].客户名称, khhz.商品ID,
dbo.[每月结存].商品名称, dbo.[每月结存].分类ID,
dbo.[每月结存].单位, dbo.[每月结存].规格, dbo.[每月结存].关系,
khhz.数量, khhz.件数, khhz.销售价, khhz.销售件价, khhz.金额,
dbo.[每月结存].出仓单价 AS 成本价,
round((ROUND(dbo.[每月结存].关系 * khhz.件数, 2) + khhz.数量)
* dbo.[每月结存].出仓单价, 2) AS 成本,
khhz.金额 - round((ROUND(dbo.[每月结存].关系 * khhz.件数, 2)
+ khhz.数量) * dbo.[每月结存].出仓单价, 2) AS 毛利
FROM (SELECT 客户ID, 商品ID, SUM(数量) AS 数量, SUM(件数)
AS 件数, SUM(金额) AS 金额, AVG(单价) AS 销售价,
AVG(件价) AS 销售件价
FROM (SELECT dbo.出仓单.客户ID, dbo.出仓单明细.商品ID,
dbo.出仓单明细.数量, dbo.出仓单明细.单价,
dbo.出仓单明细.件数, dbo.出仓单明细.件价,
dbo.出仓单明细.金额
FROM dbo.出仓单 INNER JOIN
dbo.出仓单明细 ON
dbo.出仓单.单据号 = dbo.出仓单明细.单据号
WHERE (dbo.出仓单.客户ID IS NOT NULL) AND
出仓单.日期 BETWEEN @date1 AND
@date2) khccmx
GROUP BY 客户ID, 商品ID) khhz LEFT OUTER JOIN
dbo.[代码_客户] ON
khhz.客户ID COLLATE Chinese_PRC_CI_AS = dbo.[代码_客户].客户ID
LEFT OUTER JOIN
dbo.[每月结存] ON
khhz.商品ID COLLATE Chinese_PRC_CI_AS = dbo.[每月结存].商品ID
AND 每月结存.年份 = datepart(year,@date2) AND
每月结存.月份 = datepart(month,@date2)) AS khhz
WHERE 分类ID IS NOT NULL AND 分类id <> 'HC'
GROUP BY 客户ID, 客户名称, 分类ID) khhz
GROUP BY 客户ID, 客户名称
end
--耗材类
if @index=46
begin
SELECT 客户id, 客户名称, SUM(数量) AS 数量, SUM(件数) AS 件数, SUM(金额)
AS 金额, SUM(成本) AS 成本, SUM(毛利) AS 毛利
FROM (SELECT 客户ID, 客户名称, 分类ID, SUM(数量) AS 数量, SUM(件数) AS 件数,
SUM(金额) AS 金额, SUM(成本) AS 成本, SUM(毛利) AS 毛利
FROM (SELECT khhz.客户ID, dbo.[代码_客户].客户名称, khhz.商品ID,
dbo.[每月结存].商品名称, dbo.[每月结存].分类ID,
dbo.[每月结存].单位, dbo.[每月结存].规格, dbo.[每月结存].关系,
khhz.数量, khhz.件数, khhz.销售价, khhz.销售件价, khhz.金额,
dbo.[每月结存].出仓单价 AS 成本价,
round((ROUND(dbo.[每月结存].关系 * khhz.件数, 2) + khhz.数量)
* dbo.[每月结存].出仓单价, 2) AS 成本,
khhz.金额 - round((ROUND(dbo.[每月结存].关系 * khhz.件数, 2)
+ khhz.数量) * dbo.[每月结存].出仓单价, 2) AS 毛利
FROM (SELECT 客户ID, 商品ID, SUM(数量) AS 数量, SUM(件数)
AS 件数, SUM(金额) AS 金额, AVG(单价) AS 销售价,
AVG(件价) AS 销售件价
FROM (SELECT dbo.出仓单.客户ID, dbo.出仓单明细.商品ID,
dbo.出仓单明细.数量, dbo.出仓单明细.单价,
dbo.出仓单明细.件数, dbo.出仓单明细.件价,
dbo.出仓单明细.金额
FROM dbo.出仓单 INNER JOIN
dbo.出仓单明细 ON dbo.出仓单.单据号 = dbo.出仓单明细.单据号
WHERE (dbo.出仓单.客户ID IS NOT NULL) AND
出仓单.日期 BETWEEN @date1 AND
@date2) khccmx
GROUP BY 客户ID, 商品ID) khhz LEFT OUTER JOIN
dbo.[代码_客户] ON
khhz.客户ID COLLATE Chinese_PRC_CI_AS = dbo.[代码_客户].客户ID
LEFT OUTER JOIN
dbo.[每月结存] ON
khhz.商品ID COLLATE Chinese_PRC_CI_AS = dbo.[每月结存].商品ID
AND 每月结存.年份 = datepart(year,@date2) AND
每月结存.月份 = datepart(month,@date2)) AS khhz
WHERE 分类ID = 'HC'
GROUP BY 客户ID, 客户名称, 分类ID) hckhhz
GROUP BY 客户ID, 客户名称
end
drop table 临时表看看速度是否提升了。