首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

改sql语句求大家帮助,多谢

2012-04-12 
改sql语句求大家帮助,谢谢select case when States1 then N总合计 else pianqu end as pianqu,case whe

改sql语句求大家帮助,谢谢
select case when States=1 then N'总合计' else pianqu end as pianqu,
  case when Citys=1 then N'合计' else fahuodanwei end as fahuodanwei,
  maozhong,pizhong,jingzhong,ykl,hangshu  
from (
select pianqu,fahuodanwei,sum(maozhong) as maozhong,sum(pizhong) as pizhong,sum(jingzhong) as jingzhong,sum(ykl) as ykl ,sum(hangshu) as hangshu ,Grouping(pianqu) as States,Grouping(fahuodanwei) as Citys
from sysdb
where gbsj between '2012-03-01 00:00:00' and '2012-03-31 23:59:59'
group by pianqu,fahuodanwei with rollup) q


大家好,我想在程序里通过赋值的方式把上面的sql语句赋值给变量sqlstr,并且把两个时间段分别用变量ts1和ts2表示应该怎样改?
  ts1:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date)+' '+FormatDateTime ('hh:mm:ss',DateTimePicker3.Time);

  ts2:=FormatDateTime('yyyy-mm-dd',DateTimePicker2.Date)+' '+FormatDateTime('hh:mm:ss',DateTimePicker4.Time);
  ADOQuery6.Close;
  ADOQuery6.SQL.Clear; 
  ADOQuery6.SQL.add(sqlstr)
........
我怎么改也改不好,

[解决办法]

Delphi(Pascal) code
sqlstr:='... gbsj between '+Quotedstr(ts1)+' and '+Quotedstr(ts2)+' ...';
[解决办法]
很简单把sqlstr拿到sql里执行,看看哪里出错,sql会告诉你哪行哪个地方有错误
[解决办法]
Delphi(Pascal) code
adoquery.Sql.Text := 'select case when States=1 then N''总合计'' else pianqu end as pianqu, ' +' case when Citys=1 then N''合计'' else fahuodanwei end as fahuodanwei, ' +' maozhong,pizhong,jingzhong,ykl,hangshu  '+ ' from (  '+ ' select pianqu,fahuodanwei,sum(maozhong) as maozhong,sum(pizhong) as pizhong,sum(jingzhong) as jingzhong,sum(ykl) as ykl ,sum(hangshu) as hangshu ,Grouping(pianqu) as States,Grouping(fahuodanwei) as Citys '+ ' from sysdb '+ ' where gbsj between '+quotedStr(ts1)+' and '+quotedStr(ts2)+ ' group by pianqu,fahuodanwei with rollup) q  ';adoquery.Open(); 

热点排行