注册 登录
编程论坛 SQL Server论坛

两个实际使用SQL中遇到的问题

bluesglass 发布于 2009-11-07 11:18, 811 次点击
求助一:
内容:如下的两张表,可以肯定的是这两张表里的公司是相同的,只是两表企业名输入的有差异。这里只是两个表的一小部分,这样的情况大约有十几万条记录。
表一:
企业名
北京市XXX公司
北京市YYY有限责任公司
昌平AAA实业集团

表二
企业名
北京XXX公司
北京市YYY有限公司
北京市昌平区AAA实业集团

目的:两表做比对,把相同的公司找出来,像上面的北京市XXX公司和北京XXX公司就是同一家公司。

问题:不知道这条SQL语句要如何写。


求助二:
内容:一张表,如下
表:
金额                      收款时间                         发出商品数量            发出时间          对方收到时间
10000                   20091010                          100                       20090101        20090124
10000                   20091010                          200                       20090201        20090321
10000                   20091010                          300                       20090301        20090405
10000                   20091010                          500                       20090401        20090501

目的:这是其中一部分,约十几万条这样的记录,这是两个表相连之后的结果,现在要做的是,前面的金额和收款时间不动,把后面的发出商品相加得到总数,发出时间保留最早的时间也,对方收到时间保留最后一个时间,也就是
金额                      收款时间                         发出商品数量            发出时间          对方收到时间
10000                   20091010                          1000                      20090101        20090501

问题:不知道这条SQL语句要如何写。

希望大家帮帮我。
9 回复
#2
不说也罢2009-11-07 12:00
一、select [表一].[企业名],[表二].[企业名] from [表一],[表二] where [表一].[企业名] = [表二].[企业名]

二、select [金额],[收款时间],sum([发出商品数量]) as [发出商品数量],min([发出时间]) as [发出时间],max([对方收到时间]) as [对方收到时间] from [表名] group by [金额],[收款时间]


#3
bluesglass2009-11-07 13:00
回复 2楼 不说也罢
第一个,北京市XXX公司和北京XXX公司,差了一个市字,肯定是不会出现在结果里的,但是这两个确实是一个公司
#4
msgj2009-11-07 14:33
就第一个问题,可以用like ‘北京%XXX%公司‘通配符进行筛选,但结果还是得手动确认。在实践应用中应该给每个企业编码的。
#5
bluesglass2009-11-07 15:12
拿到手的就是这样的两张表,没有编码,如果有编码就不这么烦恼了
#6
不说也罢2009-11-07 17:08
以下是引用bluesglass在2009-11-7 13:00:09的发言:

第一个,北京市XXX公司和北京XXX公司,差了一个市字,肯定是不会出现在结果里的,但是这两个确实是一个公司
先将“北京XXX公司”Update 为“北京市XXX公司”
或者
将“北京市XXX公司”Update 为“北京XXX公司”
然后再比较
#7
bluesglass2009-11-07 21:49
以下是引用不说也罢在2009-11-7 17:08:04的发言:

先将“北京XXX公司”Update 为“北京市XXX公司”
或者
将“北京市XXX公司”Update 为“北京XXX公司”
然后再比较
不可能这样做的,因为数据量太大了,如果这样做的话,与我在SQL外用人工去核对没有什么区别了
#8
看春2009-11-09 13:08
‘不说也罢’你就别说话了,根本不了解状况!
#9
不说也罢2009-11-09 13:25
以下是引用看春在2009-11-9 13:08:38的发言:

‘不说也罢’你就别说话了,根本不了解状况!
#10
bluesglass2009-11-09 17:07
没事的没事的,该说就说,大家一起讨论嘛
1