Top 回复人: alu_ok(冬瓜茶) ( ) 信誉:100 2003-3-28 13:16:31 得分:0
从数据库直接输出XML数据: select text1,text2 from table1 where text1 like '%alu_ok%' for xml auto
Top 回复人: alu_ok(冬瓜茶) ( ) 信誉:100 2003-3-28 13:19:12 得分:0
UPDATE titles SET t.ytd_sales = t.ytd_sales + s.qty FROM titles t, sales s WHERE t.title_id = s.title_id AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
Top 回复人: PeterMCT(天天下雨1991) ( ) 信誉:101 2003-3-28 13:21:02 得分:0
up
Top 回复人: alu_ok(冬瓜茶) ( ) 信誉:100 2003-3-28 13:21:07 得分:0
DELETE authors FROM (SELECT TOP 10 * FROM authors) AS t1 WHERE authors.au_id = t1.au_id
Top 回复人: alu_ok(冬瓜茶) ( ) 信誉:100 2003-3-28 13:22:26 得分:0
初始化表table1 TRUNCATE TABLE table1
Top 回复人: lxxlily(笨鸟先飞) ( ) 信誉:107 2003-3-28 13:31:43 得分:0
cnuninet(www.helloaspx.com) :晕~~
Top 回复人: zhjzh_zjz(虚心学习,望多指教) ( ) 信誉:117 2003-3-28 15:11:57 得分:0
从入库信息表和入库清单表中得期初期末库存: SELECT a.mattype as mattype, a.matname as matname, a.spec as spec,a.indate as indate, a.amount AS lastnum, a.matsum AS lastsum, b.amount AS curnum, b.matsum AS cursum FROM (SELECT a.mattype, a.matname, a.spec, TO_CHAR(a.indate, 'yyyy-mm') AS indate, SUM(b.amount) AS amount, SUM(b.matsum) AS matsum FROM (SELECT a.mattype, a.matname, a.spec, a.indate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype = b.mattype (+) AND a.mattype = c.mattype (+) AND a.matname = b.matname (+) AND a.matname = c.matname (+) AND a.spec = b.spec (+) AND a.spec = c.spec (+) AND a.indate = b.outdate (+) AND a.indate = c.backdate (+) GROUP BY a.mattype, a.matname, a.spec, a.indate UNION SELECT b.mattype, b.matname, b.spec, b.outdate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype (+) = b.mattype AND b.mattype = c.mattype (+) AND a.matname (+) = b.matname AND b.matname = c.matname (+) AND a.spec (+) = b.spec AND b.spec = c.spec (+) AND a.indate (+) = b.outdate AND b.outdate = c.backdate (+) GROUP BY b.mattype, b.matname, b.spec, b.outdate UNION SELECT c.mattype, c.matname, c.spec, c.backdate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype (+) = c.mattype AND b.mattype (+) = c.mattype AND a.matname (+) = c.matname AND c.matname = b.matname (+) AND c.spec = a.spec (+) AND c.spec = b.spec (+) AND c.backdate = b.outdate (+) AND c.backdate = a.indate (+) GROUP BY c.mattype, c.matname, c.spec, c.backdate) a, (SELECT a.mattype, a.matname, a.spec, a.indate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype = b.mattype (+) AND a.mattype = c.mattype (+) AND a.matname = b.matname (+) AND a.matname = c.matname (+) AND a.spec = b.spec (+) AND a.spec = c.spec (+) AND a.indate = b.outdate (+) AND a.indate = c.backdate (+) GROUP BY a.mattype, a.matname, a.spec, a.indate UNION SELECT b.mattype, b.matname, b.spec, b.outdate AS indate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype (+) = b.mattype AND b.mattype = c.mattype (+) AND a.matname (+) = b.matname AND b.matname = c.matname (+) AND a.spec (+) = b.spec AND b.spec = c.spec (+) AND a.indate (+) = b.outdate AND b.outdate = c.backdate (+) GROUP BY b.mattype, b.matname, b.spec, b.outdate UNION SELECT c.mattype, c.matname, c.spec, c.backdate AS indate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype (+) = c.mattype AND b.mattype (+) = c.mattype AND a.matname (+) = c.matname AND c.matname = b.matname (+) AND c.spec = a.spec (+) AND c.spec = b.spec (+) AND c.backdate = b.outdate (+) AND c.backdate = a.indate (+) GROUP BY c.mattype, c.matname, c.spec, c.backdate) b WHERE TO_CHAR(b.indate, 'yyyy-mm') <= TO_CHAR(a.indate, 'yyyy-mm') AND a.mattype = b.mattype (+) AND a.matname = b.matname (+) AND a.spec = b.spec (+) GROUP BY a.mattype, a.matname, a.spec, TO_CHAR(a.indate, 'yyyy-mm')) a, ---未完,待续
Top 回复人: zhjzh_zjz(虚心学习,望多指教) ( ) 信誉:117 2003-3-28 15:13:01 得分:0
---接上面 (SELECT a.mattype, a.matname, a.spec, TO_CHAR(a.indate, 'yyyy-mm') AS indate, SUM(b.amount) AS amount, SUM(b.matsum) AS matsum FROM (SELECT a.mattype, a.matname, a.spec, a.indate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype = b.mattype (+) AND a.mattype = c.mattype (+) AND a.matname = b.matname (+) AND a.matname = c.matname (+) AND a.spec = b.spec (+) AND a.spec = c.spec (+) AND a.indate = b.outdate (+) AND a.indate = c.backdate (+) GROUP BY a.mattype, a.matname, a.spec, a.indate UNION SELECT b.mattype, b.matname, b.spec, b.outdate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype (+) = b.mattype AND b.mattype = c.mattype (+) AND a.matname (+) = b.matname AND b.matname = c.matname (+) AND a.spec (+) = b.spec AND b.spec = c.spec (+) AND a.indate (+) = b.outdate AND b.outdate = c.backdate (+) GROUP BY b.mattype, b.matname, b.spec, b.outdate UNION SELECT c.mattype, c.matname, c.spec, c.backdate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype (+) = c.mattype AND b.mattype (+) = c.mattype AND a.matname (+) = c.matname AND c.matname = b.matname (+) AND c.spec = a.spec (+) AND c.spec = b.spec (+) AND c.backdate = b.outdate (+) AND c.backdate = a.indate (+) GROUP BY c.mattype, c.matname, c.spec, c.backdate) a, (SELECT a.mattype, a.matname, a.spec, a.indate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype = b.mattype (+) AND a.mattype = c.mattype (+) AND a.matname = b.matname (+) AND a.matname = c.matname (+) AND a.spec = b.spec (+) AND a.spec = c.spec (+) AND a.indate = b.outdate (+) AND a.indate = c.backdate (+) GROUP BY a.mattype, a.matname, a.spec, a.indate UNION SELECT b.mattype, b.matname, b.spec, b.outdate AS indate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype (+) = b.mattype AND b.mattype = c.mattype (+) AND a.matname (+) = b.matname AND b.matname = c.matname (+) AND a.spec (+) = b.spec AND b.spec = c.spec (+) AND a.indate (+) = b.outdate AND b.outdate = c.backdate (+) GROUP BY b.mattype, b.matname, b.spec, b.outdate UNION SELECT c.mattype, c.matname, c.spec, c.backdate AS indate, SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum FROM (SELECT a.mattype AS mattype, a.matname AS matname, a.spec AS spec, b.indate AS indate, a.amount AS amount, a.matsum AS matsum, b.matsource AS matsource FROM materialin a, matin b WHERE b.serial = a.serial) a, matuse b, matback c WHERE a.mattype (+) = c.mattype AND b.mattype (+) = c.mattype AND a.matname (+) = c.matname AND c.matname = b.matname (+) AND c.spec = a.spec (+) AND c.spec = b.spec (+) AND c.backdate = b.outdate (+) AND c.backdate = a.indate (+) GROUP BY c.mattype, c.matname, c.spec, c.backdate) b WHERE TO_CHAR(b.indate, 'yyyy-mm') <= TO_CHAR(a.indate, 'yyyy-mm') AND a.mattype = b.mattype (+) AND a.matname = b.matname (+) AND a.spec = b.spec (+) GROUP BY a.mattype, a.matname, a.spec, TO_CHAR(a.indate, 'yyyy-mm')) b WHERE a.mattype = b.mattype (+) AND a.matname = b.matname (+) AND a.spec = b.spec (+) AND TO_DATE(a.indate, 'yyyy-mm') = ADD_MONTHS(TO_DATE(b.indate, 'yyyy-mm'), 1) --语句完毕
|