关于SQL中if语句的问题,请大家帮忙。

xzkyulili 2004-11-22 01:00:20
我有两个表,
表1字段为:主表id,名称,类别,停用标志。
表2字段为:从表id,主表id,工序,准备工时,准备人数,操作工时,操作人数。

请问:
判断停用标志是否为0,
如果是就显示:从表id,主表id,sum(准备工时*准备人数),sum(操作工时*操作人数)。
如果不是显示:从表id,主表id,该列为:0,sum(操作工时*操作人数)。

请大家帮我一下。谢谢!!!!
...全文
255 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qizhanfeng 2004-11-22
  • 打赏
  • 举报
回复
create view viewName
as

SELECT ManHaur_CTBL.LingJianID,
zbgs = CASE WHEN tingyongbz = 0 THEN SUM(ManHaur_CTBL.LingJianZBGS * ManHaur_CTBL.ZhunBeiRS)
ELSE 0 END, SUM(ManHaur_CTBL.LingJianCZGS * ManHaur_CTBL.CaoZuoRS)
AS czgs, Manhaur_ZTBL.TingYongBZ
FROM ManHaur_CTBL INNER JOIN
Manhaur_ZTBL ON ManHaur_CTBL.LingJianID = Manhaur_ZTBL.LingJianID
GROUP BY ManHaur_CTBL.LingJianID, Manhaur_ZTBL.TingYongBZ

go
wenhongL 2004-11-22
  • 打赏
  • 举报
回复
create view viewName
as

SELECT ManHaur_CTBL.LingJianID,
zbgs = CASE WHEN tingyongbz = 0 THEN SUM(ManHaur_CTBL.LingJianZBGS * ManHaur_CTBL.ZhunBeiRS)
ELSE 0 END, SUM(ManHaur_CTBL.LingJianCZGS * ManHaur_CTBL.CaoZuoRS)
AS czgs, Manhaur_ZTBL.TingYongBZ
FROM ManHaur_CTBL INNER JOIN
Manhaur_ZTBL ON ManHaur_CTBL.LingJianID = Manhaur_ZTBL.LingJianID
GROUP BY ManHaur_CTBL.LingJianID, Manhaur_ZTBL.TingYongBZ
xzkyulili 2004-11-22
  • 打赏
  • 举报
回复
SELECT ManHaur_CTBL.LingJianID,
zbgs = CASE WHEN tingyongbz = 0 THEN SUM(ManHaur_CTBL.LingJianZBGS * ManHaur_CTBL.ZhunBeiRS)
ELSE 0 END, SUM(ManHaur_CTBL.LingJianCZGS * ManHaur_CTBL.CaoZuoRS)
AS czgs, Manhaur_ZTBL.TingYongBZ
FROM ManHaur_CTBL INNER JOIN
Manhaur_ZTBL ON ManHaur_CTBL.LingJianID = Manhaur_ZTBL.LingJianID
GROUP BY ManHaur_CTBL.LingJianID, Manhaur_ZTBL.TingYongBZ

谢谢各位大虾。
如何将他写成视图呢??
ykily 2004-11-22
  • 打赏
  • 举报
回复
同意大家,接分
davorsuker39 2004-11-22
  • 打赏
  • 举报
回复
select b.id,a.id,sum(准备工时*准备人数)=case when 停用标志=0 then sum(准备工时*准备人数)else 0 end,sum(操作工时*操作人数) FROM 表1 a join 表2 b on a.主表id=b.主表id
davorsuker39 2004-11-22
  • 打赏
  • 举报
回复
IIF a.停用标志=0
select b.id,a.id,sum(准备工时*准备人数),sum(操作工时*操作人数) FROM 表1 a join 表2 b on a.主表id=b.主表id
else
select b.id,a.id,sum(准备工时*准备人数)=0,sum(操作工时*操作人数) FROM 表1 a join 表2 b on a.主表id=b.主表id
endIIF
lsxaa 2004-11-22
  • 打赏
  • 举报
回复
select 从表id,主表id,cast 停用标志 when 0 then sum(准备工时*准备人数)else 0 end,sum(操作工时*操作人数)

from ...

34,590

社区成员

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

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