Dim sb As New StringBuilder
sb.Append("Sele ct lsd.djbh As 单据编号, lsd.ckdm2 As 出库仓库, shangpin.spdm As 商品_代码,")
sb.Append("shangpin.spmc As 商品_名称, lsdmx.gg1dm As 颜色_代码, guige1.ggmc As 颜色_名称, lsdmx.gg2dm As 尺码_代码,")
sb.Append("guige2.ggmc As 尺码_名称, lsdmx.sl As 数量, lsdmx.pj As 吊牌金额 ")
sb.Append("Fr om lsdmx")
sb.Append(" left outer Join guige1 On lsdmx.gg1dm = guige1.ggdm")
sb.Append(" left outer Join guige2 On lsdmx.gg2dm = guige2.ggdm")
sb.Append(" left outer Join lsd On lsdmx.djbh = lsd.djbh")
sb.Append(" left outer Join shangpin On lsdmx.sfzdm = shangpin.sfzdm")
sb.Append(" Where lsdmx.gg1dm = '70' and shangpin.spdm='eb0150'")
Output.Show(sb.ToString)
'Dim cmd As New SQLCommand
'Dim dt As DataTable
'cmd.ConnectionName = _mrsjy
'cmd.CommandText = sb.ToString
'dt = cmd.ExecuteReader()
Dim b As New CrossTableBuilder("统计表0", sb.ToString, _mrsjy)
b.HGroups.AddDef("商品_代码") '添加客户列用于水平分组
b.VGroups.AddDef("颜色_代码") '添加产品列用于垂直分组
b.Totals.AddDef("数量") '添加数量列用于统计
'b.Totals.AddDef("吊牌金额", AggregateEnum.Sum) '添加数量列用于统计
'b.HorizontalTotal = True
'b.VerticalTotal = True
b.Build '生成统计表
Maintable = Tables("统计表0") '打开生成的统计表
Output.Show(Tables("统计表0").Cols.Count)
以上代码交叉统计不显示列,用临时表dt的方式能够正常显示,请问是哪里没写对吗
此主题相关图片如下:baidushurufa_2025-2-15_20-16-43.png

使用这个sql生成查询表,然后通过查询表生成统计表试试
[此贴子已经被作者于2025/2/17 9:08:43编辑过]
数据库是sqlserver 2008的,,麻烦甜版了