SELECT MenuItemNo,MenuContents FROM tsm_detail_menu_info,tsm_role_menu
WHERE MenuItemNo in (SELECT MenuNo FROM tsm_role_menu WHERE RoleNo = :ls_RoleNo);
查出来的结果为什么有很多重复的
...全文
13616打赏收藏
做报表时,选用什么格式的数据窗体好?
如题! 还有: SELECT MenuItemNo,MenuContents FROM tsm_detail_menu_info,tsm_role_menu WHERE MenuItemNo in (SELECT MenuNo FROM tsm_role_menu WHERE RoleNo = :ls_RoleNo); 查出来的结果为什么有很多重复的
首先那做报表需要根据实际的情况来选择datawindow style
比如统计、汇总报表可以选用 group 风格
显示明细的可以选用 grid 风格
如果用来编辑、修改的话,你可以选用 freedom 或者 tabular 风格
总之它们各有各优点,就看你想做什么么用或是做成什么样子
至于你的这个SQL语句:
SELECT MenuItemNo,MenuContents FROM tsm_detail_menu_info,tsm_role_menu
WHERE MenuItemNo in (SELECT MenuNo FROM tsm_role_menu WHERE RoleNo = :ls_RoleNo);
在where子句中,你用到in的关键字,要想保证不出现重复的内容,首行要保证
查询子句中的MenuNo不重复,在子句必须有distinct关键字
SELECT distinct MenuNo FROM tsm_role_menu WHERE RoleNo = :ls_RoleNo
并且你是多表查询,你要保证这两个表之间的关联关系得到的不是迪卡尔集
SELECT MenuItemNo,MenuContents FROM tsm_detail_menu_info a ,tsm_role_menu b
WHERE a.MenuItemNo in (SELECT MenuNo FROM tsm_role_menu WHERE RoleNo = :ls_RoleNo)and a.xxx = b.xxx;