- 论坛徽章:
- 0
|
这一点小小的区别,速度就差100倍么
优化方案是first rows
下面是脚本 只要把这个脚本的2005-1-26
改成20050126 速度相差100倍
SELECT 0 accountid, 0 companyid, 0 deptid,
TO_DATE ('2005-01-26', 'YYYY-MM-DD') submittime, 0 ID, '' orderid,
TO_DATE ('2005-01-26', 'YYYY-MM-DD') orderdate, a.customerid,
0 productid, b.customercode productcode, b.customerdesc productdesc,
'' baseunit,
CASE
WHEN SUM (quantorder) = 0
THEN 0
ELSE ROUND ( SUM (amounttradeorder)
/ SUM (CAST (quantorder AS DEC (12))),
2
)
END tradeprice,
'' retailprice, SUM (quantreq) quantreq, SUM (quantorder) quantorder,
SUM (amounttradeorder) amounttradeorder,
SUM (quantdelivered) quantdelivered,
SUM (amountdelivered) amountdelivered, SUM (quantsales) quantsales,
SUM (amounttradesales) amounttradesales,
SUM (amountretailsales) amountretailsales, '' taxrate, '' tax,
'' disc, '' discamount, 0 invoiceno, '' invoicetype, '' paymentmode,
'' ispaid, '' acceptancemode, '' deliverymode, '' ischeck,
TO_DATE ('2005-01-26', 'YYYY-MM-DD') checkdate, '' orderstatus,
0 roadid, 0 deliverseq, a.visitsalesmanid, a.delevererid,
0 invoicemakerid, '' gpicklistid, '' deliverylistid,
TO_DATE ('2005-01-26', 'YYYY-MM-DD') deliverydate, 0 whid, '' remark,
'' iscancel, '' tag
FROM t_visitsales_orderdetail a JOIN t_comm_customer b ON a.customerid =
b.customerid
WHERE a.productid = 110110
AND NVL (a.paymentmode, '0') LIKE '%'
AND NVL (acceptancemode, '0') LIKE '%'
AND NVL (a.ispaid, '0') LIKE '%'
AND NVL (a.iscancel, '0') LIKE '0'
AND orderdate BETWEEN TO_DATE ('2005-1-26', 'yyyy-mm-dd')
AND TO_DATE ('2005-1-26', 'yyyy-mm-dd')
AND a.visitsalesmanid = 9001
GROUP BY a.visitsalesmanid,
a.delevererid,
a.customerid,
b.customercode,
b.customerdesc
ORDER BY b.customercode |
|