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 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘