向变量赋值的 SELECT 语句不能与数据检索操作结合使用

zjroland 2020-06-10 10:13:40
我有一个竞标的表 Markets_DemandBids
BidID int , 竞标序列号
DemandID, int 项目序列号
UserID int, 用户ID
CompID int, 公司ID
BidDesc Nvarchar(2000) 竞标内容

由于项目既允许公司竞标,也允许个人竞标,主要看 CompID ,
如果 CompID>0, 那么就是公司竞标,需要从公司表 Soft_Company 取得公司名称 CompName 和公司图片 CompPhoto,
如果 CompID=0, 那么就是个人竞标,需要从用户表 Accounts_Users 取得用户姓名 FullName 和用户图片 Photo (CompName ,CompPhoto为null)


我这样写出现错误: 向变量赋值的 SELECT 语句不能与数据检索操作结合使用。
ALTER PROCEDURE [dbo].[up_Markets_GetDemnadBidsByDemandID]
@DemandID int
AS
DECLARE @BidID int
SELECT @BidID=BidID, UserID,FullName=(SELECT FullName FROM Markets_DemandBids INNER JOIN Accounts_Users ON Markets_DemandBids.UserID=Accounts_Users.UserID WHERE BidID=@BidID),
Photo=(SELECT Photo FROM Markets_DemandBids INNER JOIN Accounts_Users ON Markets_DemandBids.UserID=Accounts_Users.UserID WHERE BidID=@BidID),

CompID,CompName = (SELECT CompName FROM Markets_DemandBids INNER JOIN Soft_Company ON Markets_DemandBids.CompID=Soft_Company.CompID WHERE BidID=@BidID),
CompPhoto = (SELECT CompPhoto FROM Markets_DemandBids INNER JOIN Soft_Company ON Markets_DemandBids.CompID=Soft_Company.CompID WHERE BidID=@BidID),
BidDesc
FROM Markets_DemandBids
WHERE DemandID = @DemandID
请高手指导一下怎么才能实现这个查询?

...全文
583 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhz_dxm 2020-06-12
  • 打赏
  • 举报
回复
两个left join不就搞定了吗
zjroland 2020-06-10
  • 打赏
  • 举报
回复
Yole的回答是正解,用左连接就行了。连 CASE WHEN都省了,那个可以在小程序中判断:<view wx:if="{{item.CompID>0}}" > 关键就是这句话:左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录。
zjroland 2020-06-10
  • 打赏
  • 举报
回复
我试一下左连接,以前很少用左连接: select * from A left join B on A.aID = B.bID left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). B表记录不足的地方均为NULL.
Yole 2020-06-10
  • 打赏
  • 举报
回复
你可以左连接公司表和个人表,然后 case when then 判断CompID>0用公司表,CompID=0用个人表;不需要赋值在判断那么麻烦的~~~
shoppo0505 2020-06-10
  • 打赏
  • 举报
回复
提示很清楚,SELECT @BidID=BidID, UserID,FullName= 这里不对啊。 又是赋值,又是选取数据操作。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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