百万MP求助SQL问题~达人快进!(发帖人MP:22753516)
-
Fire_fang
楼主
- 本人用SQL server 2005 碰到一个问题:
表Test例如下:
Name kamoku bun
方 eng 98
方 eng 77
方 eng 22
方 math 11
方 math 12
方 math 13
方 chi 14
方 chi 12
方 chi 13
求取得表如下的SQL文:
Name kamoku bun
方 eng 98
方 math 11
方 chi 14
就是取相同的Name和kamoku下,第一条bun的纪录
本人在做access 到 sql server的移植,原access语法如下
TRANSFORM FIRST(Test.bun) AS bun..........
...............................................
如有符合的答案,百万MP立即奉上!!
-
Fire_fang
楼主(1)
- 顶一下,没人会吗?
-
Fire_fang
楼主(2)
- 没有人会吗 急等解决!!
-
紫萧独孤
3楼
- 汗..忘了,以前还专门学过
-
咬是口交
4楼
- 还没学呢,帮顶
-
我爱游山玩水
5楼
- 不懂帮顶
-
我爱游山玩水
6楼
- 不懂帮顶
-
yujian_1985
7楼
- 不懂。帮顶!
-
笛声凄
8楼
- 路过帮顶```早日解决`
-
azrael0332
9楼
- SELECT name,kamoku,min(bun) FROM test group by name,kamoku
应该是这些~MP拿来
-
azrael0332
10楼
- "select name,kamoku,min(bun) from test group by name,kamoku "
就这些吧~MP拿来
-
azrael0332
11楼
- 刚才错了~应该是
"select name,kamoku,max(bun) from test group by name,kamoku "
就这些吧~MP拿来
-
猫的四分之一
12楼
- 帮顶
-
小启明星
13楼
- select Name,kamoku,max(bun) bun from Test group by Name,kamoku
-
小启明星
14楼
- select Name,kamoku,top 1(bun) bun from Test group by Name,kamoku
-
小启明星
15楼
- 或者 select top 1 Name,kamoku, bun from Test group by Name,kamoku
-
飞恨
16楼
- select name,kamoku,bun from test where bun in (select top 1 bun from test where bun in (select bun from test group by name)))
没试过,不知道有没错
-
层层保护的钢
17楼
- 顶一个
-
Rаptòr
18楼
- bang 帮顶
-
危险派对
19楼
- 进入MyEclipse Database view :
MyEclipse -->Windows-->Open Perspective-->MyEclipse Database Explor
7。进入New Database connection driver对话框:
在MyEclipse右边DB browser框 -->右键 选择New。。。
8.Driver Template :在下拉框中选择数据库驱动模板。这里这里选择 Microsoft SQL Server 2005
Driver name :驱动的名字。
Connection URL: 填写时 <>号及<>号中的内容为替代项(即将<>号及<>号中的内容按下面要求替代) 。[ ] 中的内容为选填项(如果要填写 [ ] 中的database项 只要去掉 [ ]号 )。
默认为:jdbc:sqlserver://:[;databaseName=]
例如:jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks
或 jdbc:sqlserver://localhost:1433
内填写服务器的ip ,要是本机就是主机的IP或填写 localhost 表示本机 。
:端口号的配置。 SQL Server 默认1433.
一.这里容易出错。 在我们创建好连接后,会连接不上,错误为: error while performing database login with the test driverjava.net.connectException Connection refused:connect 。这是因为你的端口号的问题。使用的是动态端口,可以禁用动态度端口,使用默认的1433端口。下面是解决办法:
Microsoft SQL Server 2005 -->配置工具 -->SQL Server Configuration Manager。
二.进入SQL Server Configuration Manager后点击 “SQL Server 2005网络配置” 选择 “ XXXX的协议” (XXXX为实例名。比如实例名为SQLSERVER2005,则显示为 SQLSERVER2005的协议 ) 。
三.在右边选择 “TCP/IP” , 进入TCP/IP属性对话框。选择"IP地址"栏 可以看到 IP1 IP2 和IPALL3个 选择栏。 把3个选择栏中的 “TCP动态端口”选项的0去掉为空 ,表示不启用动态端口。在其下面的“TCP端口”填写1433,或者其他无冲突的端口号做为连接时的端口号。
选择“SQL Native Client 配置” 点击子菜单 “客户端协议”, 同样在右边选择 “TCP/IP” ,进入TCP/IP属性对话框。查看默认端口号,是否为1433.或者改为你自己的端口号 ,要与前面在“SQL Server 2005网络配置”中的TCP端口一致。
四 之后, 重新启动SQL SERVER服务。
五.如果你感觉修改麻烦的话。可以使用动态端口。每次创建连接时 查看 “SQL Server 2005网络配置”----> XXXX的协议-->“TCP/IP”项中的"IP地址"栏下的“TCP动态端口”为多少。因为每次重新启动SQL SERVER 服务,端口就会变化。然后在填写你看到的端口号
参考资料:http://www.builder.com.cn/2008/0523/878645.shtml
-
我叫酱油_凭啥
20楼
- 帮顶。。帮顶
确实不会
-
jtslk
21楼
- select Name,kamoku,max(bun) bun from Test group by Name,kamoku
-
非主流犯贱
22楼
- 职业帮顶,mp.
-
偶比谁都懒
23楼
- 数据库?
以前还学过的。。。。
全都忘记了
-
偶比谁都懒
24楼
- 数据库?
以前还学过的。。。。
全都忘记了
-
petersland
25楼
- 进入MyEclipse Database view :
MyEclipse -->Windows-->Open Perspective-->MyEclipse Database Explor
7。进入New Database connection driver对话框:
在MyEclipse右边DB browser框 -->右键 选择New。。。
8.Driver Template :在下拉框中选择数据库驱动模板。这里这里选择 Microsoft SQL Server 2005
Driver name :驱动的名字。
Connection URL: 填写时 <>号及<>号中的内容为替代项(即将<>号及<>号中的内容按下面要求替代) 。[ ] 中的内容为选填项(如果要填写 [ ] 中的database项 只要去掉 [ ]号 )。
默认为:jdbc:sqlserver://:[;databaseName=]
例如:jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks
或 jdbc:sqlserver://localhost:1433
内填写服务器的ip ,要是本机就是主机的IP或填写 localhost 表示本机 。
:端口号的配置。 SQL Server 默认1433.
一.这里容易出错。 在我们创建好连接后,会连接不上,错误为: error while performing database login with the test driverjava.net.connectException Connection refused:connect 。这是因为你的端口号的问题。使用的是动态端口,可以禁用动态度端口,使用默认的1433端口。下面是解决办法:
Microsoft SQL Server 2005 -->配置工具 -->SQL Server Configuration Manager。
二.进入SQL Server Configuration Manager后点击 “SQL Server 2005网络配置” 选择 “ XXXX的协议” (XXXX为实例名。比如实例名为SQLSERVER2005,则显示为 SQLSERVER2005的协议 ) 。
三.在右边选择 “TCP/IP” , 进入TCP/IP属性对话框。选择"IP地址"栏 可以看到 IP1 IP2 和IPALL3个 选择栏。 把3个选择栏中的 “TCP动态端口”选项的0去掉为空 ,表示不启用动态端口。在其下面的“TCP端口”填写1433,或者其他无冲突的端口号做为连接时的端口号。
选择“SQL Native Client 配置” 点击子菜单 “客户端协议”, 同样在右边选择 “TCP/IP” ,进入TCP/IP属性对话框。查看默认端口号,是否为1433.或者改为你自己的端口号 ,要与前面在“SQL Server 2005网络配置”中的TCP端口一致。
四 之后, 重新启动SQL SERVER服务。
五.如果你感觉修改麻烦的话。可以使用动态端口。每次创建连接时 查看 “SQL Server 2005网络配置”----> XXXX的协议-->“TCP/IP”项中的"IP地址"栏下的“TCP动态端口”为多少。因为每次重新启动SQL SERVER 服务,端口就会变化。然后在填写你看到的端口号
-
与子偕老52
26楼
- 帮顶
-
找爱的小猪
27楼
- 不会啊! 帮你顶顶!
-
mayameimei
28楼
- 没学过sql,在sas的sql里我们这么做:先得出每个name出现的次数,用count函数,然后把count>=1的mane取出来
-
Fire_fang
楼主(29)
- 不是min,也不是max,是第一条数据。top 1语法只能取一条,而且回复的SQL语法都不对~
-
mayameimei
30楼
- name
-
Fire_fang
楼主(31)
- 8338916 2008-06-16 异动内容:被操作人:[jtslk, 飞恨, 小启明星, azrael0332, mayameimei] 操作人:Fire_fang 异动内容:批转让MP成功,总计500000MP,人均100000MP ,扣除转让税 5000 MP
异动原因:批转mp(谢谢) 操作人:猫扑管理员
-
与子偕老52
32楼
- 帮顶
-
dangyang16
33楼
- 看不懂 帮顶的
-
clclwan
34楼
- select name,kamoku,bun from test where bun in (select top 1 bun from test where bun in (select bun from test group by name)))
-
叶黄了....
35楼
- 帮顶 给嘛
-
iamcat0000
36楼
- 不懂,帮顶,愿楼主能早日解决.
-
晨风0228
37楼
- 不太会,等看正确答案
帮顶一下
-
001best
38楼
- 顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
-
老子说食色性
39楼
- select Name,kamoku,max(bun) bun from Test group by Name,kamoku
-
azrael0332
40楼
- 没注意LZ要求~现正测试中~捎后给出答案
-
呆.呆
41楼
- select distinct Name from Test
就这一行就足够了,关键在于distinct的用法
楼上诸位的热情令人感动然而都不解决问题。
-
呆.呆
42楼
- 其实就一句
select distinct name from test
就可以了。这里面关键是distinct的用法。
楼上各位尽管热情很高但是没有一个真正解决问题。
-
射會諸亦嚎
43楼
- 顶过..
-
苗sir
44楼
- 不懂,顶
-
接过红旗肩上
45楼
- select top 1 *
from test
where (Name, kamoku) in
(select Name, kamoku from test group by Name, kamoku);
-
↑Switch∞
46楼
- 使用IDENTITY函数帮表建立序号!
然后用以下的就可得出
SELECT IDENTITY(INT,1, 1) as ID,name,kamoku,bum into #tmp from text
select kaoku,bum ,min(id) from #tmp group by kaoku,bum
这出来的必定是按照你表顺序的第一条纪录~
-
↑Switch∞
47楼
- 使用IDENTITY函数帮表建立序号!
然后用以下的就可得出
SELECT IDENTITY(INT,1, 1) as ID,name,kamoku,bum into #tmp from test
select name,kamoku,min(id), bun from #tmp group by kaoku,name
这出来的必定是按照你表顺序的第一条纪录~
-
pineapple117
48楼
- select * top 1(bun) from Test group by Name,kamoku
-
tangyin83
49楼
- SELECT name,kamoku,bun
FROM test a
where a.bun=(select top 1 bun from test where kamoku=a.kamoku)
已经测试过了 100W拿来
-
tangyin83
50楼
- 上面的SQL语句直接就可以得到楼主的结果了 MP 嘿嘿
-
azrael0332
51楼
- LZ问个问题~~你是用ACCESS吧~~
这个表的主健没给出来吧~
用ACCESS的话他会默认设置一个自动编号的主健吧~
-
pc1000a
52楼
- 我只能帮你顶顶 呵呵
-
azrael0332
53楼
- 问题是假如NAME是其他的但是kamoku还是这几个 ~
49L的就无法统计了~
-
azrael0332
54楼
- 所以还要加上
SELECT [name],kamoku,bun
FROM test a
where a.bun=(select top 1 bun from test where kamoku=a.kamoku and [name]=a.[name])
啊哦~我承认我是在挑错~
-
黑涩会V糖果
55楼
- declare @sql varchar(max)
select @sql = @sql + ' select top 1 [Name], [kamoku], [bun] from [Test] where [Name] = ''' + [Name] + ''' and [kamoku] = ''' + [kamoku] + ''' union all '
from (select distinct [Name], [kamoku] from [Test]) as temp
set @sql = left(@sql, len(@sql) - 10)
执行(@sql)
select distinct Name,kamoku,bun from test
-
snidt2000
56楼
- SELECT name,kamoku,bun
FROM test a
where a.bun=(select top 1 bun from test where kamoku=a.kamoku)
group by name,kamoku,bun
-
接过红旗肩上
57楼
- 一句半年得,一吟俩泪流,:
select Name, kamoku, bun
from (select Name,
kamoku,
bun,
row_number() over(partition by Name, kamoku order by 1) rowid
from test)
where rowid = 1;
必需是SQL 2005 才有效!!!
-
笨boy
58楼
- 对SQL不是很熟悉..帮顶..拿点MP
-
stormszeto
59楼
- select Name,kamoku,max(bun) bun from Test group by Name,kamoku
MP拿来,
-
yuhang_227
60楼
- select top 1 * from test where kamoku=eng union
select top 1 * from test where kamoku=math union
select top 1 * from test where kamoku=chi
楼主,能不能发点MOP币我用用,穷人啊!
-
a182035908
61楼
- 就这些吧~MP拿来
-
龙舒之巅
62楼
- 不懂帮顶~!
-
13706911
63楼
- 帮顶
-
一鸡巴敲死你
64楼
- 我穷人呀
-
小破孩の
65楼