这个的SQL语句如何写?!? 关于两个表间的数据.
表一:定价表
字段有 公司名称 ,价格 , 产品
大发公司 20 显示器
全部 30 显示器
全部 100 硬盘
表二:报价表
字段有 公司名称 , 价格 ,产品
问题是: 如果定价表中有 公司名称='大发公司'的 所有产品 的定价,则复制一份到
报价表, 如果没有,如果某种产品没有大发公司报价的, 就把公司名称='全部'的报价复制过来.比如说上面, 就是要把第一条跟第三记记录复制到 报价表
问题点数:60、回复次数:5Top
1 楼kenpa(大海无量)回复于 2003-12-04 01:48:34 得分 0
问我同事搞定了
分两步
select '大发公司', 价格, 产品 from 定价表
where 公司名称='大发公司' and 产品 not in
(
select 产品 from 报价表 where 公司名称='大发公司'
)
select '大发公司', 价格, 产品 from 定价表
where 公司名称='全部' and 产品 not in
(
select 产品 from 报价表 where 公司名称='大发公司'
)
Top
2 楼pengdali()回复于 2003-12-04 08:37:51 得分 0
insert 报价表 (公司名称,价格,产品)
select 公司名称,价格,产品 from 定价表 where 公司名称='大发公司'
union all
select 公司名称,价格,产品 from 定价表 where 产品 not in (select 产品 from 定价表 where 公司名称='大发公司')
Top
3 楼pengdali()回复于 2003-12-04 08:39:54 得分 50
insert 报价表 (公司名称,价格,产品)
select 公司名称,价格,产品 from 定价表 where 公司名称='大发公司'
union all
select 公司名称,价格,产品 from 定价表 where 公司名称='全部' and 产品 not in (select 产品 from 定价表 where 公司名称='大发公司')
或:
insert 报价表 (公司名称,价格,产品)
select 公司名称,价格,产品 from 定价表 where 公司名称='大发公司' or (公司名称='全部' and 产品 not in (select 产品 from 定价表 where 公司名称='大发公司'))Top
4 楼victorycyz(--)回复于 2003-12-04 08:46:47 得分 0
select a.*
into 报价表
from 定价表 a join
(select min(公司名称) as 公司,产品
from 定价表
group by 产品
where 产品 in ('大发公司','全部')
) T on a.产品=T.产品 and a.公司名称=T.公司Top
5 楼victorycyz(--)回复于 2003-12-04 08:48:39 得分 10
上面错了,报价表已有了:
insert into 报价表
select a.*
from 定价表 a join
(select min(公司名称) as 公司,产品
from 定价表
group by 产品
where 产品 in ('大发公司','全部')
) T on a.产品=T.产品 and a.公司名称=T.公司
Top




