ADOQuery2.SQL.Text :='select 品名, sum(发出/销售) from [' + TableList[0] + '] where 年 like ''%' + Edit1.Text +'%''  group by 品名 having sum(发出/销售)';
运行这句话时为什么会出现参数发出 参数没有默认值错误,怎么改

解决方案 »

  1.   

    having子句有錯,應是這樣的格式:having sum(發出/銷售)>0,另外注意字串聯結間是否有空格,因你字段名是中文,字段名加個[]吧。
      

  2.   

    ADOQuery2.SQL.Text :='select 品名, sum(发出/销售) from [' + TableList[0] + '] where 年 like ''%' + Edit1.Text +'%'' group by 品名 having sum(发出/销售)>0';
      

  3.   

    having 条件有问题啊 不是逻辑值啊,按照楼上的做法
      

  4.   

    ADOQuery2.SQL.Text :='select 品名, sum(发出/销售) from [' + TableList[0] + '] where 年 like ''%''' + Edit1.Text +'''%'' group by 品名 having sum(发出/销售)>0';这样试试,这样写SQL,要注意引号的应用。其实最好用 QuotedStr() 来替代 引用,不容易出错
      

  5.   

    这个问题解决了,但是sum(发出/销售)貌似进行了默认除法,其实发出/销售是列名,这个列名怎么处理?
      

  6.   

    ADOQuery2.SQL.Text :='select 品名, sum(发出/销售) from [' + TableList[0] + '] where 年 like ''%' + Edit1.Text +'%'' group by 品名 having sum([发出/销售])>0';
      

  7.   

    ADOQuery2.SQL.Text :='select 品名, sum([发出/销售]) from [' + TableList[0] + '] where 年 like ''%' + Edit1.Text +'%'' group by 品名 having sum([发出/销售])>0';
      

  8.   

    ADOQuery2.SQL.Text :='select 品名, sum(发出/销售) from [' + TableList[0] + '] where 年 like ''%' + Edit1.Text +'%'' group by 品名,sum(发出/销售)';试一试吧,应该行的。