SQL 语句中的CASE用法 求助

dongjianhua520520 2009-12-14 11:50:37
1、问题描述:
有几个字段
毛重,毛重时间
皮重,皮重时间
出入库类型(只是存‘出库’和‘入库’)
如何在判断 出入库类型 为 ‘出库’的时候 用的时间是 ‘毛重时间’(即出库的时候结算时间)
出入库类型 为 ‘入库’ 的时候 用的时间是 ‘皮重时间’(即入库的时候结算时间)
而我在查询条件中判断一个字段(而这个字段就是上面的‘毛重时间’或者是‘皮重时间’)
用SQL中的CASE办法实现吗?
请高手看看帮帮忙。
...全文
148 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangshun 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jiangshun 的回复:]
引用 7 楼 dongjianhua520520 的回复:
还有就是 这些查询要在一个 SQL语句中完成、、、、、具体也就是说查询 当天的
datediff(d,‘上面你得到的那个时间字段’,'" + DateTime.Now.ToString() + "')=0
怎么把这些都弄到一个SQL语句中啊???

SQL code
(casewhen 出入库类型='出库'thendatediff(dd,毛重时间,getdate())when 出入库类型='入库'thendatediff(dd,皮重时间,getdate())end)=0
[/Quote]

或者
datediff(dd,case when 出入库类型='出库' then 毛重时  when 出入库类型='入库' then 皮重时间 end,getdate())=0
jiangshun 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dongjianhua520520 的回复:]
还有就是 这些查询要在一个 SQL语句中完成、、、、、具体也就是说查询 当天的
datediff(d,‘上面你得到的那个时间字段’,'" + DateTime.Now.ToString() + "')=0
怎么把这些都弄到一个SQL语句中啊???
[/Quote]

(case when 出入库类型='出库' then datediff(dd,毛重时间,getdate())
when 出入库类型='入库' then datediff(dd,皮重时间,getdate()) end)=0
chenjianyong94 2009-12-14
  • 打赏
  • 举报
回复
那就是动态的行列转换了。
dongjianhua520520 2009-12-14
  • 打赏
  • 举报
回复
还有就是 这些查询要在一个 SQL语句中完成、、、、、具体也就是说查询 当天的
datediff(d,‘上面你得到的那个时间字段’,'" + DateTime.Now.ToString() + "')=0
怎么把这些都弄到一个SQL语句中啊???
jiangshun 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
SQL codecase 出入库类型when'出库'then'毛重时间'when'入库'then'皮重时间'end
[/Quote]

case when 出入库类型='出库' then 毛重时  when 出入库类型='入库' then 皮重时间 end
dongjianhua520520 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
SQL codecase 出入库类型when'出库'then'毛重时间'when'入库'then'皮重时间'end
[/Quote]

你这样使用 得到的字段是 ‘出入库类型’ 我要的是这个不确定的时间字段。
我要使用它啊。
我姓区不姓区 2009-12-14
  • 打赏
  • 举报
回复

select case [出入库类型] when [出库] then [毛重时间] when [入库] then [皮重时间] end as [时间],[出入库类型] from [表名]
zhengliyan_star 2009-12-14
  • 打赏
  • 举报
回复
"select case(Status) when '0' then '激活' when '2' then '激活' else '冻结' end as operate ,case(Status) when '3' then '启用' else '删除' end as dele ,*from Customer as c left outer join Province as p on c.Province=p.ProvinceID
qqzeng-ip 2009-12-14
  • 打赏
  • 举报
回复
 update #tmp set @temp= 
case when @t>进库数量-已出数量
then 进库数量-已出数量
else @t
end,
@t=@t-@temp,
已出数量=@temp+已出数量
where 已出数量<>进库数量
阿非 2009-12-14
  • 打赏
  • 举报
回复
case 出入库类型 when '出库' then '毛重时间' when '入库' then '皮重时间' end
yw8653 2009-12-14
  • 打赏
  • 举报
回复
学习来了
屌丝女士111 2009-12-14
  • 打赏
  • 举报
回复
恭喜啦
dongjianhua520520 2009-12-14
  • 打赏
  • 举报
回复
问题解决
thanks

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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