表1
货号 货名 规格 工种 数量 金额
1     a    1    a    2    5
2     b    2    b    3    5
3     c    3    a    4    5
4     d    5    c    2    3
我要得到查询表
货号 货名 规格 a工种总数量 b工种总数量 c工种总数
1    a    1     2           0          0
2    b    2    0            3           0
这样的表
我用的是vb+access,请高手指点,谢

解决方案 »

  1.   

    在access里面做交叉表查询,然后复制生成的sql代码。
      

  2.   

    TRANSFORM Sum(xlgl.数量) AS 数量之Sum
    SELECT xlgl.货号, xlgl.货名, xlgl.颜色
    FROM xlgl
    GROUP BY xlgl.货号, xlgl.货名, xlgl.颜色
    PIVOT xlgl.工种
    生成这样的代码,但如何加到vb里面,请楼上大哥指点
      

  3.   

    用ADO来操作:'引用ADO("工程"/"引用"/Microsoft ActiveX Data Objects 2.X Library)Private Sub Command1_Click()
        Dim cn As New ADODB.Connection, rs As New ADODB.Recordset,strSql As String
        
        strSql="TRANSFORM Sum(xlgl.数量) AS 数量之Sum SELECT xlgl.货号, xlgl.货名, xlgl.颜色 FROM xlgl GROUP BY xlgl.货号, xlgl.货名, xlgl.颜色 PIVOT xlgl.工种"
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\userdata.mdb;Jet OLEDB:DataBase password=a1234;"
        
        rs.CursorLocation = adUseClient    
        rs.Open strSql, cn, adOpenDynamic, adLockOptimistic
           
        Set DataGrid1.DataSource=rs '把查到的记录显示到DataGrid里
    End Sub