两张表 分别是 sale 和 basic 其中有两个字段 一个是 销售用户 一个是销售产品型号 销售用户存在于 sale中 销售产品类型存在于 basic 并且唯一
最后有一个报表功能 现有的功能是只能查询 销售用户 代码如下 (部分)
case "month":
$query="select *  
  from #@__sale,#@__reportsale  
where year(#@__reportsale.r_date)=year('$sday') and month(#@__reportsale.r_date)=month('$sday')  
and #@__sale.rdh=#@__reportsale.r_dh  
and #@__sale.member LIKE '%".$member."%' //查询某天的销售用户
现在需要检索某天销售用户的某个销售型号 牵涉到跨表查询问题 (因为不想把销售产品类型也写入到sale表中)
代码应该如何写呢   
因为查实吧basic中的 销售产品类型写入 但发现实现不了  
比较菜 请大师给出答案吧表 sale 中的 member 字段 表 basic 中的 cp_name比如 山东新发(member)某天K这种型号(cp_name)的产品的销售情况

解决方案 »

  1.   

    SELECT * FROM sale s LEFT JOIN basic b ON s.prodectionid = b.prodectionid WHERE year(#@__reportsale.r_date)=year('$sday') and month(#@__reportsale.r_date)=month('$sday')  
    and #@__sale.rdh=#@__reportsale.r_dh  
    and #@__sale.member LIKE '%".$member."%'试试这个吧,我这里没法模拟你的情况
      

  2.   

    不就是关联一下查询末,
    sale 和 basic 表总要有个字段关联, 
    关联表,条件加上 member= AND cp_name= 
    看看这样的思路能实现末.
      

  3.   

    谢谢大家的热心回答 
    现在贴上 表结构 以及 想要的效果

    basic  
    .....cp_name
    sale
    .....member
    目的是出个报表
    现在只能报member的某天或者某个时间段的购买情况表 
    想要获得
    member 的某天或者某个时间段 cp_name 的购买情况报表现在的php代码如下 <?php
      if($type=='')$type='month';
      switch($type){
       case 'day':
       ?>
           <table width="100%" cellspacing="0" cellpadding="0" border="0" id="table_border">
        <tr height="40">
    <form action="report_member.php?action=save&type=day" name="form1" method="post">
     <td id="row_style" colspan="10">
     客户名称:<input type="text" size="15" name="member" value="<?php echo ($action=='save')?$member:''?>">&nbsp;&nbsp;<img src="images/03.gif" border="0" style="cursor:hand;" alt="单击浏览客户信息" onclick="getinfo()">
     <input type="text" size="15" name="cp_name" value="">
     请选择日期&nbsp;&nbsp;<input type="text" name="sday" onclick="setday(this)" value="<?php echo ($action=='save')?$sday:GetDateMk(time());?>">&nbsp;<select name="finish"><option value="" <?php echo $finish==""?"selected":"";?>>全部显示</option><option value="0" <?php echo $finish=="0"?"selected":"";?>>未收全款</option><option value="1" <?php echo $finish=="1"?"selected":"";?>>已收全款</option></select>&nbsp;
     <input type="submit" value=" 显示某日报表 ">
     </td>
        </tr>
       <?php
       break;
       case 'month':
       ?>
           <table width="100%" cellspacing="0" cellpadding="0" border="0" id="table_border">
        <tr height="40">
    <form action="report_member.php?action=save&type=month" name="form1" method="post">
     <td id="row_style" colspan="10">
     客户名称:<input type="text" size="15" name="member" value="<?php echo ($action=='save')?$member:''?>">&nbsp;&nbsp;<img src="images/03.gif" border="0" style="cursor:hand;" alt="单击浏览更多产品信息" onclick="getinfo()">
     <input type="text" size="15" name="cp_name" value="">
     
     请选择月份&nbsp;&nbsp;<input type="text" name="sday" onclick="setday(this)" value="<?php echo ($action=='save')?$sday:GetDateMk(time());?>">&nbsp;<select name="finish"><option value="" <?php echo $finish==""?"selected":"";?>>全部显示</option><option value="0" <?php echo $finish=="0"?"selected":"";?>>未收全款</option><option value="1" <?php echo $finish=="1"?"selected":"";?>>已收全款</option></select>&nbsp;
     <input type="submit" value=" 显示月报表 ">
     </td>
        </tr>
       <?php
       break;
       case 'year':
       ?>
           <table width="100%" cellspacing="0" cellpadding="0" border="0" id="table_border">
        <tr height="40">
    <form action="report_member.php?action=save&type=year" name="form1" method="post">
     <td id="row_style" colspan="10">
     客户名称:<input type="text" size="15" name="member" value="<?php echo ($action=='save')?$member:''?>">&nbsp;&nbsp;<img src="images/03.gif" border="0" style="cursor:hand;" alt="单击浏览更多产品信息" onclick="getinfo()">
     <input type="text" size="15" name="cp_name" value="">
     请选择年份&nbsp;&nbsp;<input type="text" name="sday" onclick="setday(this)" value="<?php echo ($action=='save')?$sday:GetDateMk(time());?>">&nbsp;<select name="finish"><option value="" <?php echo $finish==""?"selected":"";?>>全部显示</option><option value="0" <?php echo $finish=="0"?"selected":"";?>>未收全款</option><option value="1" <?php echo $finish=="1"?"selected":"";?>>已收全款</option></select>&nbsp;
     <input type="submit" value=" 显示年报表 ">
     </td>
        </tr>
    <?php
       break;
       }
    if($action=='save'){//显示报表
            $sql=new dedesql(false);
    $rb=$sql->getone("select id from #@__sale where member='$member'");
    if($rb['id']==''){
    showmsg('没找到这个客户的购买记录!','-1');
    exit();
    }
    $plist=new datalist();
    $plist->pageSize = $cfg_record;
    //设置GET参数表
    $sday=date('Y-m-d',strtotime($sday));
    if($finish=="")
     $fstr="";
     else
     $fstr=" and #@__reportsale.finish='$finish'";
    switch($type){
    case "day":
    $query="select * 
            from #@__sale,#@__reportsale 
    where year(#@__reportsale.r_date)=year('$sday') and month(#@__reportsale.r_date)=month('$sday') and day(#@__reportsale.r_date)=day('$sday') 
    and #@__sale.rdh=#@__reportsale.r_dh 
    and #@__sale.member='$member' 
    ".$fstr;
    $report_title="客户日对账单";
    break;
    case "month":
    $query="select * 
            from #@__sale,#@__reportsale 
    where year(#@__reportsale.r_date)=year('$sday') and month(#@__reportsale.r_date)=month('$sday') 
    and #@__sale.rdh=#@__reportsale.r_dh 
    and #@__sale.member LIKE '%".$member."%' 
    ".$fstr;
    $report_title="客户月对帐单";
    break;
    case "year":
    $query="select * 
            from #@__sale,#@__reportsale 
    where year(#@__reportsale.r_date)=year('$sday') 
    and #@__sale.rdh=#@__reportsale.r_dh 
    and #@__sale.member LIKE '%".$member."%' 
    ".$fstr;
    $report_title="客户年对帐单";
    break;
    }
    $p_name=GetCookie('VioomaUserID');
    $p_date=GetDateMk(time());
    $worker=$staff;
    $sql->setquery($query);
    $sql->execute();
    while($rs=$sql->getArray()){
    $allmoney+=$rs['number']*$rs['cp_sale'];
    $alln+=$rs['number'];
    }
    $plist->SetParameter("type",$type);
    $plist->SetParameter("action",$action);
    $plist->SetParameter("sday",$sday);
    $plist->SetSource($query);
    $p_rtitle= "<tr class='row_report_head'>
    <td>货号</td>
    <td>名称</td>
    <td>规格</td>
    <td>单位</td>
    <td>单价</td>
    <td>单号</td>
    <td>数量</td>
    <td>金额</td>
    </tr>";
    $mylist = $plist->GetDataList();
           while($row = $mylist->GetArray('dm')){
       $row1=$sql->getone("select * from #@__basic where cp_number='$row[productid]'");
       $n+=$row['number'];
       $money+=$row['number']*$row['sale'];
       $p_string=$p_string."<tr onMouseMove=\"javascript:this.bgColor='#EBF1F6';\" onMouseOut=\"javascript:this.bgColor='#FFFFFF';\">\r\n
       <td><center>".$row['productid']."</td>\r\n
       <td><center>".$row1['cp_name']."</td>\r\n
       <td><center>".$row1['cp_gg']."</td>
       <td><center>".get_name($row1['cp_dwname'],'dw')."</td>
       <td><center>¥".$row['sale']."</td>\r\n
       <td><center>".$row['rdh']."</td>
       <td><center>".number_format($row['number'],2,'.',',')."</td>
       <td><center>¥".number_format($row['number']*$row['sale'],2,'.',',')."</td>
       </tr>";
       }    $p_string="<table width='100%' id='report_table' border='1' cellspacing='0' cellpadding='0'>". $p_rtitle .$p_string. "<tr>\r\n<td>&nbsp;&nbsp;小  计:</td><td colspan='5'>&nbsp;</td><td><center>".number_format($n,2,'.',',')."</td><td><center>¥".number_format($money,2,',','.')."</td>\r\n</tr>\r\n
       <tr><td>&nbsp;&nbsp;合  计:</td><td colspan='4'><center>数量:".$alln."</td><td colspan='3'><center>金额:¥".number_format($allmoney,2,'.',',')."</td><td colspan='2'></td></tr>
       </table>";
       $p_pagestring=$plist->GetPageList($cfg_record);
    }
    ?>
    请大家直接写出代码 因为是菜鸟飞飞哟 呵呵
      

  4.   

    已经通过qq解决问题啦 田心杨 真是个好同志 O(∩_∩)O哈哈~