F
fstao
Unregistered / Unconfirmed
GUEST, unregistred user!
有一个表Table1,其字段为别为No、Name和Total,其数据如下:
Table1
No Name Total
1 a
101 b
10101 c 20
10102 d 10
102 e 30
2 f
201 g 10
202 h 20
当执行一个段代码,则数据变为:
Table1
No Name Total
1 a 60
101 b 30
10101 c 20
10102 d 10
102 e 30
2 f 30
201 g 10
202 h 20
因为101包含10101和10102,所以101的Total=30,而1包含101和102,所以1的Total=60。2包含201和202,所以2的Total=30。其语句如下:
Oracle的写法是:
select ax.no, sum(bx.total) as total
from table ax, table bx where
(bx.no like concat(ax.no, '%'))
group by ax.no
但MSSQL7又如何写这个SQL呢?
Table1
No Name Total
1 a
101 b
10101 c 20
10102 d 10
102 e 30
2 f
201 g 10
202 h 20
当执行一个段代码,则数据变为:
Table1
No Name Total
1 a 60
101 b 30
10101 c 20
10102 d 10
102 e 30
2 f 30
201 g 10
202 h 20
因为101包含10101和10102,所以101的Total=30,而1包含101和102,所以1的Total=60。2包含201和202,所以2的Total=30。其语句如下:
Oracle的写法是:
select ax.no, sum(bx.total) as total
from table ax, table bx where
(bx.no like concat(ax.no, '%'))
group by ax.no
但MSSQL7又如何写这个SQL呢?