求教将多条记录合并为一条记录的SQL语句

lsl7909 2008-09-22 11:51:00

例如
Carrier_test表如下:
CarrierID IsMainCarrier
1 0
2 0
3 1

以上表三条记录要复制到如下表所示:
编号 主载波 第一辅载波 第二辅载波
1 3 1 2

请问各位,如何实现,其中"主载波"列为由表Carrier_test的"IsMainCarrier"为1的那个CarrierID值,其余第一辅载波和第二辅载波为表Carrier_test的"IsMainCarrier"为0的那两条记录的Carrier值。
...全文
233 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2008-09-24
  • 打赏
  • 举报
回复
select *,(select CarrierID from tt where CarrierID=1 and IsMainCarrier=0),
(select CarrierID from tt where CarrierID=2 and IsMainCarrier=0),
from tt where IsMainCarrier=1
wwwwb 2008-09-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lsl7909 的回复:]
谢谢wwwwb的回复,但这样应该不行呀,需要弄的那么复杂吗?
[/Quote]
你有更好的方法吗?用子查询也可以
lsl7909 2008-09-23
  • 打赏
  • 举报
回复
谢谢wwwwb的回复,但这样应该不行呀,需要弄的那么复杂吗?
wwwwb 2008-09-23
  • 打赏
  • 举报
回复
格式要固定才行
select * from 查询7 a left join 查询5 b on a.bh=b.bh

查询5
TRANSFORM max(CarrierID)
SELECT bh
FROM [SELECT 1 as bh ,CarrierID from tt where IsMainCarrier=1]. AS [%$##@_Alias]
GROUP BY bh
PIVOT iif(CarrierID=3,'主载波','第二辅载波');

查询7
TRANSFORM max(CarrierID)
SELECT bh
FROM [SELECT 1 as bh ,CarrierID from tt where IsMainCarrier=0]. AS [%$##@_Alias]
GROUP BY bh
PIVOT iif(CarrierID=1,'第一辅载波','第二辅载波');

7,712

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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