我从两张表中查询得出的结果集插入另一张表中 我想剔除重复的数据 只插入一条记录 可以?

kkk444dsfsa 2009-04-14 10:57:27
insert into fhqd(fhqdbh,fhrxm,shrxm,shrdh,zdz,sxhh,jydbh,hwmc,jianshu,bxe,zyf,yingjje,xianjin,qiankuan,yuejie,shangfu,jsfs,sqje,dshk,) select jydxx.fhrxm,jydxx.shrxm,jydxx.shrdh,jydxx.zdz,jydxx.sxhh,hwxx.jydbh,hwxx.hwmc,hwxx.jianshu,hwxx.bxe,hwxx.zyf,jydxx.yingjje,jydxx.xianjin,jydxx.qiankuan,jydxx.yuejie,jydxx.shangfu,jydxx.jsfs,jydxx.sqje,jydxx.dshk from hwxx,jydxx where hwxx.jydbh=jydxx.jydbh

我从jydxx 和hwxx 两张表中查询个别字段 插入fhqd表中 能不能剔除重复的数据再插入???
如我用 select jydxx.fhrxm,jydxx.shrxm,jydxx.shrdh,jydxx.zdz,jydxx.sxhh,hwxx.jydbh,hwxx.hwmc,hwxx.jianshu,hwxx.bxe,hwxx.zyf,jydxx.yingjje,jydxx.xianjin,jydxx.qiankuan,jydxx.yuejie,jydxx.shangfu,jydxx.jsfs,jydxx.sqje,jydxx.dshk from hwxx,jydxx where hwxx.jydbh=jydxx.jydbh 查询出这么两条记录

jydbh hwmc jianshu dshk
001 A 1 200
001 B 2 200
这两条记录其实是同一单 只是一对多的关系 我要插入到fhqd 中 只需插入
001 A 1 200
B 2

即可 可以做到?

...全文
414 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kkk444dsfsa 2009-04-14
  • 打赏
  • 举报
回复
方法不止一种 我连一种都没学会 教教我吧 htl258
netcellsoft 2009-04-14
  • 打赏
  • 举报
回复
帮顶
htl258_Tony 2009-04-14
  • 打赏
  • 举报
回复
实在不行就插入后再用变量更新为'',方法不只一种.
kkk444dsfsa 2009-04-14
  • 打赏
  • 举报
回复
帮帮忙拉 我对sql不是很熟
SELECT
ITEM=CASE WHEN ID=(
SELECT MIN(ID)
FROM TB
WHERE ITEM=A.ITEM
)
THEN RTRIM(ITEM) ELSE '' END,
NOTE
FROM TB AS A
ORDER BY ID

没用过 今天第一次见
htl258_Tony 2009-04-14
  • 打赏
  • 举报
回复
交给HEROWANG 了,俺路过帮顶..
kkk444dsfsa 2009-04-14
  • 打赏
  • 举报
回复
兄弟 帮帮忙 我对sql不熟 帮忙写出来 我试试
  • 打赏
  • 举报
回复
对于重复的数据,用null填充就行了
kkk444dsfsa 2009-04-14
  • 打赏
  • 举报
回复
还是不懂啊 HEROWANG 能帮我写出来?
  • 打赏
  • 举报
回复
CREATE TABLE [TB] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[ITEM] [int] NULL ,
[NOTE] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
CONSTRAINT [PK_TB] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
) ON [PRIMARY]
GO




INSERT INTO TB (ITEM, NOTE) SELECT 3,'XX'
INSERT INTO TB (ITEM, NOTE) SELECT 3,'XX'
INSERT INTO TB (ITEM, NOTE) SELECT 4,'XX'
INSERT INTO TB (ITEM, NOTE) SELECT 5,'XX'
INSERT INTO TB (ITEM, NOTE) SELECT 5,'XX'
INSERT INTO TB (ITEM, NOTE) SELECT 6,'XX'

SELECT * FROM TB

/*-----------------------
3 XX
3 XX
4 XX
5 XX
5 XX
6 XX
*/
SELECT
ITEM=CASE WHEN ID=(
SELECT MIN(ID)
FROM TB
WHERE ITEM=A.ITEM
)
THEN RTRIM(ITEM) ELSE '' END,
NOTE
FROM TB AS A
ORDER BY ID

/*
ITEM NOTE
------------ --------------------
3 XX
XX
4 XX
5 XX
XX
6 XX

22,300

社区成员

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

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