我现有一表名为: product1,字段内容如下:
productID productName price num
101 商品1 2.15 2
112 商品2 5.5 5
203 商品3 4.15 8
101 商品1 2.15 5一个表为product2,字段内容如下:
code name fyprice fynum
110 物品1 5 2
123 物品2 4 5
241 物品3 8 8
110 物品1 5 5我现在要求在报表中显示打印为
产品号 产品名 单价 数量 小计
101 商品1 2.15 7 15.05
112 商品2 5.5 5 27.5
203 商品3 4.15 8 33.2
110 物品1 5 7 35
123 物品2 4 5 20
241 物品3 8 8 64
意思也就是,希望用了UNION进行合并后记录排序能做到product1的记录在一起并按productID 排序,然后是product2的记录在一起,并按code排序。
目前我用UNION连接起来是同意按产品号排序的。结果类似于
产品号 ...
101 ...
110 ...
112 ...
123 ...
203 ...
241 ...
请问如何实现我的要求并在报表中显示并打印呀。
解决后结帖。
谢谢!
productID productName price num
101 商品1 2.15 2
112 商品2 5.5 5
203 商品3 4.15 8
101 商品1 2.15 5一个表为product2,字段内容如下:
code name fyprice fynum
110 物品1 5 2
123 物品2 4 5
241 物品3 8 8
110 物品1 5 5我现在要求在报表中显示打印为
产品号 产品名 单价 数量 小计
101 商品1 2.15 7 15.05
112 商品2 5.5 5 27.5
203 商品3 4.15 8 33.2
110 物品1 5 7 35
123 物品2 4 5 20
241 物品3 8 8 64
意思也就是,希望用了UNION进行合并后记录排序能做到product1的记录在一起并按productID 排序,然后是product2的记录在一起,并按code排序。
目前我用UNION连接起来是同意按产品号排序的。结果类似于
产品号 ...
101 ...
110 ...
112 ...
123 ...
203 ...
241 ...
请问如何实现我的要求并在报表中显示并打印呀。
解决后结帖。
谢谢!
FROM (SELECT productID AS 产品号, productName AS 产品名, price AS 单价, SUM(num) AS 数量, price * SUM(num) AS 小计
FROM product1
GROUP BY productID, productName, price
UNION
SELECT code AS 产品号, name AS 产品名, fyprice AS 单价, SUM(fynum) AS 数量, fyprice * SUM(fynum) AS 小计
FROM product2
GROUP BY code, name, fyprice)
ORDER BY 产品号
FROM product1
GROUP BY productID, productName, price
UNION
SELECT code AS 产品号, name AS 产品名, fyprice AS 单价, SUM(fynum) AS 数量, fyprice * SUM(fynum) AS 小计
FROM product2
GROUP BY code, name, fyprice
可以显示数据,但是是我上面说的不是我需要的排序。但是按你上面的那种,不行编译,提示 ORDER 附近有错误
SELECT *
FROM (SELECT productID AS 产品号, productName AS 产品名, price AS 单价, SUM(num) AS 数量, price * SUM(num) AS 小计
FROM product1
GROUP BY productID, productName, price
UNION
SELECT code AS 产品号, name AS 产品名, fyprice AS 单价, SUM(fynum) AS 数量, fyprice * SUM(fynum) AS 小计
FROM product2
GROUP BY code, name, fyprice) table_tmp
ORDER BY 产品号
他的结果将是
产品号 ...
101 ...
110 ...
112 ...
123 ...
203 ...
241 ...而非
产品号 产品名 单价 数量 小计
101 商品1 2.15 7 15.05
112 商品2 5.5 5 27.5
203 商品3 4.15 8 33.2
110 物品1 5 7 35
123 物品2 4 5 20
241 物品3 8 8 64
price * SUM(num) AS 小计
FROM product1
GROUP BY productID, productName, price
UNION
SELECT 1, code AS 产品号, name AS 产品名, fyprice AS 单价, SUM(fynum) AS 数量,
fyprice * SUM(fynum) AS 小计
FROM product2
GROUP BY code, name, fyprice
////////////////////////////////////
人为的加一个字段,前一个表的值衡为0,后一个表的值衡为1,SQL会自动的把两个表分开排序,你在DBGrid中不显示新加的字段,或者打印时不打印就行了。