一个看似简单却很难的问题

help1 2006-08-29 09:16:17
有一个表,结构如下:
ID PactID ModelID
1 21 1
2 22 3
3 22 4
4 44 6
.......
其中id为自动增一的序号,可以不考虑,PactID为合同号,ModelID为合同对应的型号的编号,一个合同编号对应一个或多个(如表中PactID为22的情况)型号编号,我现在想用一条SQL语句查出型号编号既为3同时又为4的PactID号,例如像查出表中PactID为22的数据,此时PactID不知道,但ModelID的值可以得到。不知如何实现??急待!!
...全文
180 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
help1 2006-08-30
  • 打赏
  • 举报
回复
谢谢了,但是怎么我的这个问题怎么是0分?没法给你们呀,等我再找找给分的地方。十分感谢!!
proglovercn 2006-08-30
  • 打赏
  • 举报
回复
<一>如上楼所说
SELECT *
FROM TABLENAME
WHERE PactID IN (SELECT PactID
FROM TABLENAME
WHERE ModelID IN (3,4) ------
GROUP BY PactID
HAVING COUNT(* ) > 1)
<二>自连接
SELECT T1.*
FROM TABLENAME T1
INNER JOIN TABLENAME T2
ON T1.PactID = T2.PactID
AND T1.ModelID <> T2.ModelID
WHERE T1.ModelID IN(3,4)
lxzm1001 2006-08-29
  • 打赏
  • 举报
回复
select * from tablename where pactid in(select pactid from tablename where group by pactid having count(*)>1)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧