xj0999 2015-05-11 08:42 采纳率: 0%
浏览 5271

SQL筛选取多个字段值语法

trans表
date room transcode amount
2015-05-11 711 1 298
2015-05-10 421 2 398
2015-05-08 711 1 298
2015-05-09 601 1 298
2015-05-10 622 2 498
2015-05-10 501 2 368
2015-05-11 711 1 298
2015-05-09 431 2 238

查询结果:
date room transcode amount
2015-05-11 711 1 298
2015-05-11 711 1 298

我读取的语句:
SELECT *
FROM Trans
WHERE (YEAR([Date]) = YEAR({ fn NOW() })) AND (MONTH([Date]) = MONTH({ fn NOW() }))
AND (DAY([Date]) = DAY({ fn NOW() }))

SELECT DISTINCT *
FROM Trans main
WHERE (NOT EXISTS
(SELECT *
FROM trans sub
WHERE main.amount = sub.amount AND main.room = sub.room AND main.TransCode <= 2 = TransCode <= 2))

上面的语法在<=2处报错

SELECT DISTINCT *
FROM Trans main
WHERE (NOT EXISTS
(SELECT *
FROM trans sub
WHERE main.room = sub.room AND main.TransCode = TransCode AND main.amount = sub.amount))

这个又查询不出来结果,出来的是全部,并且room字段显示NULL.

求高手指导,SQL取系统时间=date transcode<=2 amount金额相同 显示三个字段值相同的房间号及三个字段数据。

  • 写回答

3条回答 默认 最新

  • danielinbiti 2015-05-11 09:10
    关注
     select m.* from trans m,
    (
    select date,room,amount,transcode,COUNT(*) cnt from trans where date=CONVERT(varchar(100), GETDATE(), 23) 
    and transcode<=2  group by date,room,amount,transcode
    ) t 
    where t.room=m.room 
    and t.amount=m.amount 
    and t.transcode = m.transcode 
    and t.date = m.date 
    and cnt>1  --cnt>1表示有相同的,起码2条
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog