我是 sql server 的新手,所以我真的很难在这方面翻译我的 oracle sql。通常在 oracle sql 中,我会在“in”子句中使用两个项目,但我想这在 sql server 中可能效果不佳?
这是我的数据:
笔记表
a_id | idxno | note_text
1 0 text 1 for item b_id = 61
2 1 text 2 for item b_id = 61
3 0 text 1 for item b_id = 71
4 1 text 2 for item b_id = 71
5 2 text 3 for item b_id = 71
6 0 text 1 for item b_id = 81
7 0 text 1 for item b_id = 91
8 1 text 2 for item b_id = 91
notes_bridge_table
a_id | b_id
1 61
2 61
3 71
4 71
5 71
6 81
7 91
8 91
(**注意:我不保证 max(a_id) 是 notes_table 中的 max(idxno))
item_table
b_id | item_desc
61 desc of item 61
71 desc of item 71
81 desc of item 81
91 desc of item 91
我的愿望是显示注释表中注释最大的项目的报告。所以像:
结果
b_id | item_desc | note
61 desc of item 61 text 2 for item b_id = 61
71 desc of item 71 text 3 for item b_id = 61
81 desc of item 81 text 1 for item b_id = 61
91 desc of item 91 text 2 for item b_id = 61
我试过的:
select item_table.b_id, item_table.item_desc,
from item_table, notes_bridge_table
where item_table.b_id = notes_bridge_table.b_id
and notes_bridge_table.a_id in
(select a_id from notes_table
where notes_table.a_id = notes_bridge_table.a_id
and notes_table.idxno, notes_table.a_id in
(select max(idxno), a_id from notes_table group by a_id))
但是“and notes_table.idxno, notes_table.a_id in”的倒数第二行似乎对 sql server 无效。