日期:2014-05-17  浏览次数:20396 次

在sqlserver 中 求一sql
表 a
aid  avendor  av_vendor  aMAT
1     VT001   VT10       Y2B
2     SC002   SC20       Y1B
3     PV001   PV10       Y2B
4     VT001   VT11       Y2B
5     VT001   VT11       Y2B
6     ST001   ST01       Y2B
……
表 b
bid  b_vendor  bv_vendor  b_MAT
1     VT011   VT11       Y2B
2     SC022   SC02       Y1B
3     PV011   PV01       Y2B
4     VT021   VT21       Y2B
5     VT021   VT21       Y2B
6     ST001   ST01       Y2C
……
现要求得到以下数据
vendor  v_vendor  MAT
VT001   VT10       Y2B
PV001   PV10       Y2B
VT001   VT11       Y2B
ST001   ST01       Y2B
PV011   PV01       Y2B
VT021   VT21       Y2B
……


即 要得到 表a与 表b 中 aMAT 等于 Y2B ,bMAT 等于 Y2B
的值

------解决方案--------------------
select avendor,av_vendor,aMAT from a where aMAT='Y2B'
union all
select b_vendor,bv_vendor,b_MAT from b where b_MAT='Y2B'

要是想去重的话就去掉all关键字
------解决方案--------------------
select avendor as vendor,  av_vendor as v_vendor from a where aMAT='Y2B'  union all
select bvendor as vendor,  bv_vendor as v_vendor from b where bMAT='Y2B'