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

特急 关于多表合计,该如何解决

2012-03-11 
特急关于多表合计把本来分开写的五段SQL,合成一段,但检索结果不对,结果是翻倍的,应该如何写?合并后的sqlSB

特急 关于多表合计
把本来分开写的五段SQL,合成一段,但检索结果不对,结果是翻倍的,应该如何写?
合并后的sql
  SB.Append(" SELECT ");
  SB.Append(" count(aff.SINSA_KEKKA), ");
  SB.Append(" sum(asp1.DAT_VALUE), ");
  SB.Append(" sum(asp2.DAT_VALUE), ");
  SB.Append(" count(client1.MOSHI_KB), ");
  SB.Append(" count(client2.SEIYAKU_KB), ");
  SB.Append(" aspm.NAME as NAME, ");
  SB.Append(" aspm.CARRIER as CARRIER, ");
  SB.Append(" client2.HASEI_DATE as HASEI_DATE, ");
  SB.Append(" client2.PRO_NAME as PRO_NAME ");

  SB.Append(" FROM ");
  SB.Append(" aff_sites aff, ");
  SB.Append(" asp_dailys asp1, ");
  SB.Append(" asp_dailys asp2, ");
  SB.Append(" client_results client1, ");
  SB.Append(" client_results client2, ");
  SB.Append(" asp_mst aspm ");


  SB.Append(" WHERE ");
  SB.Append(" aff.CLIENT_ID ");
  SB.Append(" = ");
  SB.Append(" @client_id ");
  SB.Append(" AND ");
  //プロモーションが「指定なし」以外
  if (!Const.SITEINASI_NAYO.Equals(W002007_VO.txtPAGE_NM))
  {
  SB.Append("aff.PRO_NAME");
  SB.Append(" = ");
  SB.Append(" @pro_name ");
  }
  else
  {
  SB.Append("(1 = 1)");
  }
  SB.Append(" AND ");
  //ASPが「指定なし」以外
  if (!Const.SITEINASI_NAYO.Equals(W002007_VO.txtASP_NM))
  {
  SB.Append("aff.ASP_ID");
  SB.Append(" = ");
  SB.Append(" @asp_id ");
  }
  else
  {
  SB.Append("(1 = 1)");
  }
  SB.Append(" AND ");
  SB.Append("(");
  //From入力した
  if (!"".Equals(W002007_VO.txtDATE_FROM.Trim()))
  {
  SB.Append("aff.SINSA_DATE");
  SB.Append(" >= ");
  SB.Append("@DATE_From");
  }
  else
  {
  SB.Append(" 1=1 ");
  }
  SB.Append(")");

  SB.Append(" AND ");

  SB.Append("(");

  //To入力した
  if (!"".Equals(W002007_VO.txtDATE_TO.Trim()))
  {
  SB.Append("aff.SINSA_DATE");
  SB.Append(" <= ");
  SB.Append("@DATE_To");
  }
  else
  {
  SB.Append(" 1=1 ");
  }

  SB.Append(")");

  SB.Append(" AND ");
  SB.Append(" aff.SINSA_KEKKA ");
  SB.Append(" = ");
  SB.Append(" '1' ");
  SB.Append(" AND ");


  //媒体状態
  if ((W002007_VO.txtCHKPC_CHK == "1") || (W002007_VO.txtCHKMB_CHK == "1"))
  {


  SB.Append("aspm.CARRIER");
  SB.Append(" in ");
  SB.Append("(");
  string PC = "";
  string MB = "";
  if (W002007_VO.txtCHKPC_CHK == "1")
  {
  PC = "'PC'";
  if (W002007_VO.txtCHKMB_CHK == "1") 
  {
  MB = ",'MB'";
  }
  }
  else if (W002007_VO.txtCHKMB_CHK == "1") 
  {
  MB = "'MB'";
  }
  SB.Append(PC + MB);
  SB.Append(")");
   
  }
  else
  {
  SB.Append(" (1=1) ");
  }
   
  SB.Append(" AND ");
  SB.Append(" asp1.CLIENT_ID ");
  SB.Append(" = ");
  SB.Append(" aff.CLIENT_ID ");
  SB.Append(" AND ");
  SB.Append(" asp1.OROMO_NAME ");
  SB.Append(" = ");
  SB.Append(" aff.PRO_NAME ");
  SB.Append(" AND ");
  SB.Append(" asp1.ASP_ID ");
  SB.Append(" = ");
  SB.Append(" aff.ASP_ID ");
  SB.Append(" AND ");
  SB.Append(" asp1.HASEI_DATE ");
  SB.Append(" = ");
  SB.Append(" aff.SINSA_DATE ");
  SB.Append(" AND ");
  SB.Append(" asp1.DAT_KIND ");
  SB.Append(" = ");
  SB.Append(" 'K03' ");
   
  SB.Append(" AND ");
  SB.Append(" asp2.CLIENT_ID ");
  SB.Append(" = ");
  SB.Append(" aff.CLIENT_ID ");
  SB.Append(" AND ");
  SB.Append(" asp2.OROMO_NAME ");
  SB.Append(" = ");
  SB.Append(" aff.PRO_NAME ");
  SB.Append(" AND ");
  SB.Append(" asp2.ASP_ID ");
  SB.Append(" = ");
  SB.Append(" aff.ASP_ID ");
  SB.Append(" AND ");
  SB.Append(" asp2.HASEI_DATE ");
  SB.Append(" = ");
  SB.Append(" aff.SINSA_DATE ");
  SB.Append(" AND ");
  SB.Append(" asp2.DAT_KIND ");
  SB.Append(" = ");
  SB.Append(" 'K04' ");

  SB.Append(" AND ");
  SB.Append(" client1.CLIENT_ID ");
  SB.Append(" = ");
  SB.Append(" aff.CLIENT_ID ");
  SB.Append(" AND ");
  SB.Append(" client1.PRO_NAME ");
  SB.Append(" = ");


  SB.Append(" aff.PRO_NAME ");
  SB.Append(" AND ");
  SB.Append(" client1.ASP_ID ");
  SB.Append(" = ");
  SB.Append(" aff.ASP_ID ");
  SB.Append(" AND ");
  SB.Append(" client1.HASEI_DATE ");
  SB.Append(" = ");
  SB.Append(" aff.SINSA_DATE ");
  SB.Append(" AND ");
  SB.Append(" client1.MOSHI_KB ");
  SB.Append(" = ");
  SB.Append(" '1' ");
  SB.Append(" AND ");
  SB.Append(" client1.TERM_KB ");
  SB.Append(" in ");
  SB.Append(" (2,3) ");

  SB.Append(" AND ");
  SB.Append(" client2.CLIENT_ID ");
  SB.Append(" = ");
  SB.Append(" aff.CLIENT_ID ");
  SB.Append(" AND ");
  SB.Append(" client2.PRO_NAME ");
  SB.Append(" = ");
  SB.Append(" aff.PRO_NAME ");
  SB.Append(" AND ");
  SB.Append(" client2.ASP_ID ");
  SB.Append(" = ");
  SB.Append(" aff.ASP_ID ");
  SB.Append(" AND ");
  SB.Append(" client2.HASEI_DATE ");
  SB.Append(" = ");
  SB.Append(" aff.SINSA_DATE ");
  SB.Append(" AND ");
  SB.Append(" client2.SEIYAKU_KB ");
  SB.Append(" = ");
  SB.Append(" '1' ");
  SB.Append(" AND ");
  SB.Append(" client2.TERM_KB ");
  SB.Append(" = ");
  SB.Append(" client1.TERM_KB ");
   
  SB.Append(" AND ");
  SB.Append(" aspm.ASP_ID ");
  SB.Append(" = ");
  SB.Append(" aff.ASP_ID ");

  SB.Append(" group by ");
  SB.Append(" client2.HASEI_DATE, ");
  SB.Append(" client2.ASP_ID, ");
  SB.Append(" client2.PRO_NAME ");

  SB.Append(" order by ");
  SB.Append(" client2.HASEI_DATE asc");

[解决办法]
楼主你贴的是你的程序代码,能否直接在调试中看一下实际的SQL语句是什么?

热点排行