首页 新闻 赞助 找找看

group by汇总后,如何对字符字段聚合的问题?

0
悬赏园豆:100 [待解决问题]

将表1(xh.dbf)通过SQL得到表2,如:

表1:

xh custor zxs hh pm qty size cm zl
A171 ANDY 1 A00787 T 8 80*50*60 CHINA 8.48
A171 ANDY   B00555 T 30 0 CHINA 0.00
A171 ANDY   B00557 T 30 0 CHINA 0.00
A171 ANDY   A00772 T 50 0 CHINA 0.00
A171 ANDY   A00773 T 50 0 CHINA 0.00
K043 hero 1 * T 100 53*33*76 CHINA 4.69
K043 hero   / T 90 0 CHINA 0.00
A152* 1 891 T 60 53*33*28 CHINA* 1.73
A153 1 * T 20 53*33*20 CHINA 1.24
A153   915 T 20 0 CHINA 0.00
K042 冰冻 1 312 T 45 53*33*65 CHINA 4.01
K042 冰冻   313 T 80 0 CHINA 0.00
K042 冰冻   / T 50 0 CHINA 0.00
K042 冰冻   * T 9 0 CHINA 0.00
A162 脖子 1 3336 T 146 53*33*62 CHINA 3.83
A181 脖子 1 3628 T 145 53*33*76 CHINA 4.69
A181 脖子   3340 T 10 0 CHINA 0.00
A182 脖子 1 3340 T 140 53*33*76 CHINA 4.69
A182 脖子   3328 T 40 0 CHINA 0.00
A183 脖子 1 3328 T 104 53*33*76 CHINA 4.69
A183 脖子   3375 T 60 0 CHINA 0.00
A184 脖子 1 3375 T 87 53*33*76 CHINA 4.69
A184 脖子   3365 T 70 0 CHINA 0.00
A185 脖子 1 3365 T 73 53*33*36 CHINA 2.22
B085 脖子 1 3733 T 147 53*33*76 HK 4.69
B085 脖子   3734 T 10 0 HK 0.00
B086 脖子 1 3734 T 140 53*33*76 HK 4.69
B086 脖子   3307 T 20 0 HK 0.00
B087 脖子 1 3307 T 128 53*33*56 HK 3.46
B084 不不 1 07-1093 T 216 80*50*60 HK 8.48
B084 不不   07-1093* T 128 0 HK 0.00
B084 不不   07-1093+ T 109 0 HK 0.00
A176 淡淡 1 30266 T 28 80*50*60 CHINA 8.48
A176 淡淡   30219 T 48 0 CHINA 0.00
A176 淡淡   30374 T 108 0 CHINA 0.00
A176 淡淡   31400 T 72 0 CHINA 0.00
A176 淡淡   30586 T 102 0 CHINA 0.00
A177 淡淡 1 30563 T 108 80*50*60 CHINA 8.48
A177 淡淡   30192 T 60 0 CHINA 0.00
A177 淡淡   30465 T 28 0 CHINA 0.00
A177 淡淡   30857 T 72 0 CHINA 0.00
A177 淡淡   31094 T 48 0 CHINA 0.00
A178 淡淡 1 30560 T 108 80*50*60 CHINA 8.48
A178 淡淡   30562 T 108 0 CHINA 0.00
A178 淡淡   31149 T 72 0 CHINA 0.00
A178 淡淡   31198 T 48 0 CHINA 0.00
A178 淡淡   30760 T 36 0 CHINA 0.00
A173 1 208 T 18 53*33*17 CHINA 1.05
K036 发财 1 97547 T 20 65*38*67 CHINA 5.84
K036 发财   96572 T 60 0 CHINA 0.00
K037 发财 1 96572 T 10 65*38*67 CHINA 5.84
K037 发财   97550 T 70 0 CHINA 0.00
K038 发财 1 9002 T 50 65*38*67 CHINA 5.84
K038 发财   9005 T 26 0 CHINA 0.00
K038 发财   1227 T 26 0 CHINA 0.00
K038 发财   9872 T 20 0 CHINA 0.00
K038 发财   9883 T 20 0 CHINA 0.00
K038 发财   332 T 30 0 CHINA 0.00
K038 发财   331 T 40 0 CHINA 0.00
K041 发财 1 / T 60 53*33*62 CHINA 3.83
K041 发财   604 T 20 0 CHINA 0.00
K041 发财   602 T 30 0 CHINA 0.00
K048 发财 1 B001 T 70 65*38*67 CHINA 5.84
K40* 发财 1 5628-1 T 100 80*50*60 CHINA* 8.48
A163 方方 1 02 T 16 53*33*68 CHINA 4.20
A163 方方   0731 T 35 0 CHINA 0.00
A163 方方   8028 T 30 0 CHINA 0.00
A163 方方   915 T 35 0 CHINA 0.00
A163 方方   921 T 24 0 CHINA 0.00
A163 方方   908 T 10 0 CHINA 0.00
B090 方方 1 509 T 25 53*33*21 HK 1.30
A166 工人 1 \ T 190 53*33*76 CHINA 4.69
A166 工人   * T 130 0 CHINA 0.00
A167 工人 1 * T 70 53*33*76 CHINA 4.69
A167 工人   \ T 10 0 CHINA 0.00
A167 工人   - T 150 0 CHINA 0.00
A168 工人 1 - T 49 53*33*76 CHINA 4.69
A168 工人   | T 190 0 CHINA 0.00
A169 工人 1 | T 10 70*50*50 CHINA 6.18
A169 工人   + T 90 0 CHINA 0.00
A169 工人   | T 200 0 CHINA 0.00
A170 工人 1 / T 200 53*33*76 CHINA 4.69
D045 好好 1 / T 251 80*50*60 HK 8.48
D046 好好 1 * T 151 80*50*60 HK 8.48
D046 好好   + T 124 0 HK 0.00
D047 好好 1 + T 210 65*38*67 HK 5.84
D048 好好 1 * T 185 80*50*60 HK 8.48
D049 好好 1 - T 68 65*38*60 HK 5.23
D049 好好   + T 65 0 HK 0.00
D049 好好   * T 21 0 HK 0.00
B088 看见 1 1015 T 300 53*33*53 HK 3.27
K032 口岸   0916 T 31 0 CHINA 0.00
K032 口岸   0892 T 33 0 CHINA 0.00
K032 口岸   0922 T 43 0 CHINA 0.00
K032* 口岸 1 0927 T 50 65*38*67 CHINA* 5.84
K034 口岸 1 5042 T 75 65*38*50 CHINA 4.36
A175 来来 1 535 T 25 53*33*19 CHINA 1.17
A186 来来 1 0622 T 50 53*33*53 CHINA 3.27
A186 来来   689 T 20 0 CHINA 0.00
A186 来来   8802 T 40 0 CHINA 0.00
B089 来来 1 310 T 60 53*33*26 HK 1.61
K033 来来 1 881 T 80 53*33*76 CHINA 4.69
K035 来来 1 6857 T 60 65*38*67 CHINA 5.84
K035 来来   6858 T 60 0 CHINA 0.00
K035 来来   6852 T 90 0 CHINA 0.00
K046 来来 1 1287 T 60 80*50*60 CHINA 8.48
K046 来来   1315 T 45 0 CHINA 0.00
K046 来来   2671 T 30 0 CHINA 0.00
K046 来来   666 T 10 0 CHINA 0.00
K047 来来 1 666 T 100 65*38*67 CHINA 5.84
K047 来来   702 T 79 0 CHINA 0.00
K009 脸仍 1 3047 T 24 61*35*27 CHINA 2.04
K010 脸仍 1 3047 T 24 61*35*27 CHINA 2.04
K011 脸仍 1 36P10 T 24 61*35*27 CHINA 2.04
K012 脸仍 1 36P10 T 24 61*35*27 CHINA 2.04
K013 脸仍 1 38P32 T 24 61*35*27 CHINA 2.04
K014 脸仍 1 38P32 T 24 61*35*27 CHINA 2.04
K015 脸仍 1 38P11 T 24 61*35*27 CHINA 2.04
K016 脸仍 1 38P11 T 24 61*35*27 CHINA 2.04
K017 脸仍 1 38P22 T 24 61*35*27 CHINA 2.04
K018 脸仍 1 38P22 T 24 61*35*28 CHINA 2.11
K019 脸仍 1 37P49 T 24 61*35*28 CHINA 2.11
K020 脸仍 1 37P49 T 24 61*35*28 CHINA 2.11
K021 脸仍 1 34P21 T 24 61*35*28 CHINA 2.11
K022 脸仍 1 34P21 T 24 61*35*28 CHINA 2.11
K023 脸仍 1 38P22* T 24 61*35*32 CHINA 2.41
K024 脸仍 1 38P22* T 24 61*35*32 CHINA 2.41
K025 脸仍 1 38P32* T 24 61*35*32 CHINA 2.41
K026 脸仍 1 38P32* T 24 61*35*32 CHINA 2.41
K027 脸仍 1 35P69 T 24 61*35*32 CHINA 2.41
K028 脸仍 1 35P69 T 24 61*35*32 CHINA 2.41
K044 脸仍 1 * T 48 53*33*76 CHINA 4.69
K045 脸仍 1 / T 72 53*33*76 CHINA 4.69
K029 邻居 1 38P22 T 24 61*35*32 CHINA 2.41
K030 邻居 1 38P22 T 24 61*35*32 CHINA 2.41
K031 邻居 1 38P22 T 24 61*35*32 CHINA 2.41
A148 1 3385 T 121 70*50*50 CHINA 6.18
A148   3404 T 120 0 CHINA 0.00
J001 潘茄 1 721-2 T 35 80*50*60 B/CHINA 8.48
J001 潘茄   721-10 T 13 0 B/CHINA 0.00
J002 潘茄 1 721-10 T 22 80*50*60 B/CHINA 8.48
J002 潘茄   723-1 T 25 0 B/CHINA 0.00
J003 潘茄 1 723-1 T 15 80*50*60 B/CHINA 8.48
J003 潘茄   721-1 T 30 0 B/CHINA 0.00
J003 潘茄   778-2 T 2 0 B/CHINA 0.00
J004 潘茄 1 778-2 T 28 65*38*60 B/CHINA 5.23
K007 潘茄 1 4301 T 220 53*33*76 CHINA 4.69
K008 潘茄 1 108-15 T 15 80*50*60 B/CHINA 8.48
K008 潘茄   108-3 T 15 0 B/CHINA 0.00
K008 潘茄   108-19A T 15 0 B/CHINA 0.00
K008 潘茄   7255-1 T 3 0 B/CHINA 0.00
K009 潘茄 1 7255-1 T 12 65*38*70 B/CHINA 6.11
K009 潘茄   8258-2 T 20 0 B/CHINA 0.00
K01* 潘茄 1 4301 T 220 53*33*76 CHINA* 4.69
K02* 潘茄 1 4301 T 220 53*33*76 CHINA* 4.69
K03* 潘茄 1 4301 T 220 53*33*76 CHINA* 4.69
K04* 潘茄 1 4301 T 220 53*33*76 CHINA* 4.69
K05* 潘茄 1 4301 T 220 53*33*76 CHINA* 4.69
K06* 潘茄 1 4301 T 220 53*33*76 CHINA* 4.69
K800* 潘茄 1 4301 T 230 65*38*67 CHINA* 5.84
L004 潘茄   / T -1 0   0.00
L004 潘茄 1 2303-F6 T 40 80*50*50 B/CHINA 7.06
A187 1 2007-05-17 T 174 80*50*60 CHINA 8.48
A187   2007-05-17 T 37 0 CHINA 0.00
A188 1 C7338-A T 178 80*50*60 CHINA 8.48
A188   C7334-A T 156 0 CHINA 0.00
A188   C7312-A T 5 0 CHINA 0.00
A189 1 2007-05-17 T 50 53*33*45 CHINA 2.78
A149 1 * T 33 80*50*50 CHINA 7.06
A149   C7304-A T 143 0 CHINA 0.00
A149   C7311-A T 122 0 CHINA 0.00
A149   C7312-A T 17 0 CHINA 0.00
A158 为为 1 D8001 T 201 70*50*50 CHINA 6.18
A158 为为   D8002 T 102 0 CHINA 0.00
A158 为为   D8005 T 38 0 CHINA 0.00
A159 为为 1 D8005 T 102 53*33*42 CHINA 2.59
A147 1 30194 T 90 80*50*60 CHINA 8.48
A147   30288 T 28 0 CHINA 0.00
A147   30588 T 60 0 CHINA 0.00
A154 一样 1 980 T 11 53*33*18 CHINA 1.11
A154 一样   986 T 14 0 CHINA 0.00
A154 一样   987 T 20 0 CHINA 0.00
A165 有有 1 133 T 70 53*33*53 CHINA 3.27
A174 在在 1 8028 T 30 53*33*21 CHINA 1.30
A156 真好 1 007 T 60 53*33*76 CHINA 4.69
A156 真好   8100 T 80 0 CHINA 0.00
A157 真好 1 701 T 80 53*33*60 CHINA 3.71
A157 真好   9801 T 30 0 CHINA 0.00
A164 中一中 1 3704 T 78 53*33*52 CHINA 3.21
A172 中一中 1 810 T 50 53*33*32 CHINA 1.98

表2:

custor xh jx zl
ANDY A171 1 8.48
hero K043 1 4.69
A152,A153 2 2.97
冰冻 K042 1 4.01
脖子 A162,A181-A185,B085-B087 9 37.65
不不 B084 1 8.48
淡淡 A176-A178 3 25.44
A173 1 1.05
发财 K036-K038,K041,K048.K40 6 35.67
方方 A163,B090 2 5.5
工人 A166-A170 5 24.94
好好 D045-D049 5 36.51
看见 B088 1 3.27
口岸 K032,K034 2 10.2
来来 A175,A186,B089,K033,K035,K046-K047 7 30.9

烦请各位大侠帮帮小弟忙,在此感谢大家了!

cuiji的主页 cuiji | 初学一级 | 园豆:0
提问于:2011-01-29 11:02
< >
分享
所有回答(4)
0
http://www.cnblogs.com/RChen/archive/2006/11/15/sql2k5_clr.html

 

 

http://www.7880.com/Info/Article-402d2360.html

 

 

这个也许可以帮助你。

Firen | 园豆:5385 (大侠五级) | 2011-01-29 11:11
能否提供相应的代码程序?因为里面一个最关键的问题是:如果某客户所指定的箱号有些为连续编号,如:A001,A002,A003.......A050,A54此是不可能把这些字符字段全部聚合起来,能否得到A001-A050,A54的效果呢?
支持(0) 反对(0) cuiji | 园豆:0 (初学一级) | 2011-01-29 18:04
0

SQLServer2000下的话,我现在只能想到用游标实现。

eesee | 园豆:136 (初学一级) | 2011-01-29 23:38
如何现实?能否详谈?
支持(0) 反对(0) cuiji | 园豆:0 (初学一级) | 2011-02-01 23:10
0

我考虑用代码实现。程序中可以实现的话,不一定要纠结在sql语句上

茂茂 | 园豆:2892 (老鸟四级) | 2011-01-30 12:24
代码实现,能否帮忙测试一下代码?
支持(0) 反对(0) cuiji | 园豆:0 (初学一级) | 2011-02-01 16:12
0
select custor,sum(zl) zl,count(distinct xh) as jx
,xh
=stuff( (select distinct ','+xh from tab_xh b
where b.custor=a.custor
for XML PATH('')),1,1,'')
from tab_xh a group by custor

把from后面的换成你实际的表名

manji | 园豆:633 (小虾三级) | 2011-01-31 15:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册