SQL查询语句得到的结果集都是一个表格,不会有这种跨行跨列的效果。这种效果是要自己用其他工具实现的, 单纯的SQL语句做不到此效果的。 你这个报表对数据的查询应该可以使用分析函数, sum(field) over (partion by ... order by ...)得到结果集(实现表格中的小计,合计值),然后再配合应用程序的代码就可以做出此表格。
如果每个itemCode只有两个记录,那可以通过内连接实现 select a.*,b.cardcode as cardcode2,b.cardname as cardname2 from table a inner join table b using(itemcode) where a.cardcode != b.cardcode