用狐表解决起来轻松的很,Select 里面太复杂了,看晕了···· 24楼问如何换行,我试了一下,这样:
Dim fl As String = "Select {进货单}.型号,{进货单}.数量 As 进货_数量,"
fl = fl & "{进货单}.单价 As 进货_单价,{进货单}.单价 * {进货单}.数量 As 进货_金额,"
fl = fl & "{销售单}.数量 As 销售单_数量,{销售单}.售价/{销售单}.数量 As 销售单_均价,"
fl = fl & "{销售单}.售价 As 销售单_售价,{退货单}.数量 As 退货单_数量,{退货单}.单价 As 退货单_单价,"
fl = fl & "{进货单}.数量-{退货单}.数量-{销售单}.数量 As 库存_数量,{进货单}.单价 As 库存_单价,"
fl = fl & "({进货单}.数量-{退货单}.数量-{销售单}.数量)*{进货单}.单价 As 库存_金额 "
fl = fl & "from ((Select 型号,单价,sum(数量) As 数量 from {进货单}"
fl = fl & "group by 型号,单价) As {进货单} "
fl = fl & "left join (Select 型号,sum(数量) As 数量,sum(售价) As 售价 from {销售单} "
fl = fl & "group by 型号) As {销售单} on {销售单}.型号 = {进货单}.型号) "
fl = fl & "left join (Select 型号,SUM(数量) As 数量,单价 from {退货单} "
fl = fl & "group by 型号,单价) As {退货单} on {进货单}.型号 = {退货单}.型号 "
'fl = fl & "
DataTables("库存清单").Fill(fl,True)