~~~~~~~~~~~求一简单sql语句~~~~~~~~~~~

nappan 2007-08-21 11:10:49
我的表1 中有 a、b、c、d……k 12个字段,现在想给他们每个字段设计一个标记,比如atag,btag,……ktag,当标记为2时,就将对应的字段相加,为1时不相加。
我的思路是:SELECT a + b+c+……+K AS SUM
FROM 表1
WHERE a IN
((SELECT a
FROM 表1
WHERE aTag = 2)
WHERE b IN
(SELECT b
FROM 表1
WHERE btag = 2))

……

WHERE K IN
(SELECT K
FROM 表1
WHERE Ktag = 2))

但是不行,无法查询到我想要的结果,希望大家帮帮忙!语句如何实现,或者是我改改思路! 谢谢大家!
...全文
169 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nappan 2007-08-21
  • 打赏
  • 举报
回复
我的设计思路是将12个月份的数据分别以字段来存储,这样就能够实现一些我需要的月份之间的运算。同时想给每个字段打上标记,这样来进行判断数据的状态。不知道说明白了没有!我先考虑一下 用case看看
kinglht 2007-08-21
  • 打赏
  • 举报
回复
感觉楼主的设计思路有问题,不知楼主想要实现一个什么样的东西,能否说详细点。你的这些字段在同一个表里的相互之间有什么联系?
jimu8130 2007-08-21
  • 打赏
  • 举报
回复
上面给出的还是不太好,
用这个吧类似如下
select (case x when 3 then a+b+c when 2 then a+d else b+d end) as x from tablex
jimu8130 2007-08-21
  • 打赏
  • 举报
回复
这个你可以考虑使用case when来做
select a=(case x when 1 then a else 0 end),b=(case x when 1 then 0 else b end),a+b, from tables
nappan 2007-08-21
  • 打赏
  • 举报
回复
不行,提示出错在 ‘and’ 附近
sqllong 2007-08-21
  • 打赏
  • 举报
回复
你的多个where条件 应该用 and 连接
SELECT a + b+c+……+K AS SUM
FROM 表1
WHERE a IN
((SELECT a
FROM 表1
WHERE aTag = 2)
and b IN
(SELECT b
FROM 表1
WHERE btag = 2))

……

and K IN
(SELECT K
FROM 表1
WHERE Ktag = 2))
nappan 2007-08-21
  • 打赏
  • 举报
回复
不想沉太快,自己顶一个,等待高手!

110,548

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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