首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

4个表取数据。求帮忙解决。该怎么解决

2012-03-14 
4个表取数据。。。求帮忙解决。。。先说下这4张表:Provider:ProId(供应商Id、主键)、Name(供应商名字)GoodsInfo:Go

4个表取数据。。。求帮忙解决。。。
先说下这4张表:

Provider: ProId(供应商Id、主键)、Name(供应商名字)

GoodsInfo: GoodsId(商品id、主键)、Name(商品名称)、GuiGe(规格)、Unit(产地)、ProId(供应商Id、外键)

BuyInfo: BuyId(订单编号、主键)、ProId(供应商Id、外键)、DateOfBuy(采购日期、datetime类型)

BuyDetails: BuyId(订单编号、外键)、GoodsId(商品id、外键)、Count(数量)



我想搜索出GoodsInfo.GoodsId、GoodsInfo.Name、GuiGe、Unit、Provider.Name、sum(BuyDetails.count) 这6列的数据,条件是在2个时间段内,就是BuyInfo表里面的DateOfBuy,我自己尝试写了SQL语句,不过报错了。。。报的错误是:无法绑定由多个部分组成的标识符 "Provider.ProId"和无法绑定由多个部分组成的标识符 "Provider.Name"。

我自己写的SQL语句:
select GoodsInfo.GoodsId,GoodsInfo.Name,Locality,Unit,GuiGe,Provider.Name,sum(BuyInfo.count) from GoodsInfo,ProviderInfo,BuyInfo,BuyDetails where GoodsInfo.GoodsId='"+GoodsId+"' and GoodsInfo.GoodsId=BuyDetails.GoodsId and Provider.ProId=GoodsInfo.ProId and BuyInfo.BuyId=BuyDetails.BuyId and BuyInfo.DateOfBuy>=@tm1 and BuyInfo.DateofBuy<=@tm2

[解决办法]

SQL code
select  b.GoodsId,b..Name,b.GuiGe,b.Unit,a.name,sum(d.[count])from  Provider a,GoodsInfo b,BuyInfo c,BuyDetails dwhere   b.GoodsId='xx'and    b.GoodsId=d.GoodsIdand  a.ProId=c.ProIdand  c.BuyId=d.BuyIdand  c.DateOfBuy>=@tm1 and c.DateofBuy<=@tm2group by  b.GoodsId,b..Name,b.GuiGe,b.Unit,a.name 

热点排行