进行多次判断的组合查询

对查询的条件进行判断 ##根据这个四种类别组合或逐一查询,将会员卡进行统计

string sql = @”select a.MemberId,b.Name as CategoryName,a.Name as MemberName,a.Comments,a.CreationTime,c.BindCardCount
from member a left join member_category b on a.CategoryId=b.CategoryId left join
member_wallet_io e on a.MemberId=e.MemberId
inner join
(
select count(d.CardID) as BindCardCount,c.MemberId from card d
inner join member_card c on d.CardId=c.CardId “;
这里进行判断SQL是否满足
if (!string.IsNullOrEmpty(this.txtCardNumber.Text))
sql += “where d.CodeNumber like ‘%” + this.txtCardNumber.Text + “%’”;
sql += @” group by c.MemberId
) as c on c.MemberId = a.MemberId where 1=1”;
if (!string.IsNullOrEmpty(this.txtMemberName.Text))
sql += ” and a.name like ‘%” + this.txtMemberName.Text + “%’”;
if (!string.IsNullOrEmpty(this.TxtMemberWalletIO.Text))
sql += ” and e.SourceJson like ‘%” + this.TxtMemberWalletIO.Text + “%’”;
if (!string.IsNullOrEmpty(this.dtCreationStartDate.SelectedDate) && !string.IsNullOrEmpty(this.dtCreationEndDate.SelectedDate))
sql += “and a.creationtime >= ‘” + Convert.ToDateTime(this.dtCreationStartDate.SelectedDate).ToString(“yyyy-MM-dd”) + “‘and a.creationtime<=’” + Convert.ToDateTime(this.dtCreationEndDate.SelectedDate).ToString(“yyyy-MM-dd 23:59:59”) + “’”;
sql += @” group by a.MemberId,b.Name,a.Name,a.Comments,a.CreationTime,c.BindCardCount
order by a.CreationTime”;
DataTable dt = dbAccess.ExecuteTable(sql);
this.dgvMember.TableDefinition = new TableDefinitionXmlFile(Server.MapPath(“MemberListDefinition.xml”));
this.dgvMember.DynamicColumnBind();
this.dgvMember.SetDataSource(dt);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值