TRANSFORM sum(用量)
SELECT 日期, 产量
FROM 
(select a1.日期, 明细, 用量, 产量 
from a1, a2, (select 日期, sum(a1.产量) as 产量 from a1 group by 日期) a3 
where a1.id=a2.id and a1.日期=a3.日期
)
GROUP BY 日期, 产量
PIVOT 明细可以在ACCESS中执行 SQL语句后得到
日期 (自动生成1-N列)1 2 3 4 5 6 7 8 产量
2010-1-1 8 2 1 7 5 4 1.9 3
2010-1-3 5 7 2 3 7 4 2.2 3
2010-1-4 1 13.5 2 1   
2010-1-5 1 3 1
这样的结果
我用VB listview读出是该怎么读出来列是 自动生成的
do while not rs.eof
ListView1.ColumnHeaders.Add , , rs.Fields("明细"), 1400
rs.MoveNext
Loop
ListView1.ColumnHeaders.Add (rs.RecordCount + 3), , "产量", 1400
rs.Close
我只能读出列头
其他要怎么读啊

解决方案 »

  1.   

    类似下面的代码
    Dim Lst As ListItemSet Lst = ListView1.ListItems.Add
                    Lst.Text ="aaaa"
                    Lst.SubItems(1) = rs(0)
                    Lst.SubItems(2) =  rs(1)
                    Lst.SubItems(3) =  rs(2)
                    Lst.SubItems(4) =  rs(3)
                    Lst.SubItems(5) =  rs(4)
      

  2.   

    do while not rs.eof
        for i=0 to rs.fields.count-1
             Lst.SubItems(i+1) =  rs(i)
        next i    rs.MoveNext
    Loop
      

  3.   

    Listview需要自己写代码填充,原理是那个样子,自己在程序中的控制就随意了.
      

  4.   

    有些列头是自动生成的  
    Dim Lst As ListItemSet Lst = ListView1.ListItems.Add
                    Lst.Text ="aaaa"
                    Lst.SubItems(1) = rs(0)
                    Lst.SubItems(2) =  rs(1)
                    Lst.SubItems(3) =  rs(2)
                    Lst.SubItems(4) =  rs(3)
                    Lst.SubItems(5) =  rs(4)
    用上面的方法只能固定显示啊