当前位置: 代码迷 >> Sql Server >> 查询。
  详细解决方案

查询。

热度:93   发布时间:2016-04-24 09:05:17.0
求一个查询。。。
表的设计比较蛋疼
id  数据1  数据2  条件1  条件2

要查出满足条件1的数据1和满足条件2的数据2

查出来的结果是: id 数据1  数据2 的形式

我现在的做法:
SELECT id, 数据1 INTO #T1 FROM tb WHERE 条件1
 SELECT id, 数据2 INTO #T2 FROM tb WHERE 条件2
 SELECT a.id, a.数据1,b.数据2 FROM #T1 FULL JOIN #T2 ON #T1.id = #T2.id


实际有的话,还有个分组,条件判断也有点多。。。这三句写出来一大坨

求一个简洁的
------解决思路----------------------
你还是贴点数据吧
------解决思路----------------------
SELECT SUM(CASE WHEN 预交方式='现金' THEN 预交钱 
           WHEN 补交方式='现金' THEN 补交钱
           ELSE 0 END) AS 总和
FROM TB 
WHERE (CASE WHEN 预交方式='现金' THEN  预交时间 
       WHEN 补交方式='现金' THEN 补交时间
       ELSE '' END)='2015-05-22'
 AND 用户id='1'
------解决思路----------------------
SELECT ISNULL(T1.用户id,T2.用户id)[用户id]
,T1.预交钱
,T2.补交钱
FROM(
SELECT 用户id,SUM(预交钱)预交钱
FROM TB
WHERE 预交方式='现金'AND 预交时间 BETWEEN'2015-05-01'AND'2015-05-30'
GROUP BY 用户id
)T1 FULL JOIN(
SELECT 用户id,SUM(补交钱)补交钱
FROM TB
WHERE 补交方式='刷卡'AND 补交时间 BETWEEN'2015-05-01'AND'2015-05-30'
GROUP BY 用户id
)T2 ON T1.用户id=T2.用户id
  相关解决方案