下面是查询or语句,再想增加一个根据传入的bh条件查询,就是判断传入参数str值截取,从bh左侧截取到传入str参数的长度,请问该如何写?我是用Delphi开发的left(bh,len(:str))=:str
SELECT a.yppinming,a.bh,a.idno,b.jhdanwei, ISNULL(b.ypshuliang, 0) 
      AS ypshuliang
FROM (SELECT bh,yppinming,idno  FROM Y_baseinfo  
where (yppinyinma LIKE :pinyinma  and ypflag='是' )  OR  (yppinming LIKE :yppinming and ypflag='是')  OR (yphuaxuemingcheng LIKE :ypbianma and ypflag='是')    
        GROUP BY bh,yppinming,idno) a LEFT OUTER JOIN
          (SELECT ypid,jhdanwei, SUM(ypshuliang) AS ypshuliang
         FROM Y_kucun
         GROUP BY ypid,jhdanwei) b ON a.idno = b.ypid  
GROUP BY a.bh,a.yppinming,a.idno, b.jhdanwei,b.ypshuliang

解决方案 »

  1.   

    SELECT a.yppinming,a.bh,a.idno,b.jhdanwei, ISNULL(b.ypshuliang, 0) 
          AS ypshuliang
    FROM (SELECT bh,yppinming,idno  FROM Y_baseinfo  
    where (yppinyinma LIKE pinyinma+'%'  and ypflag='是' )  OR  (yppinming LIKE yppinming+'%' and ypflag='是')  OR (yphuaxuemingcheng LIKE ypbianma+'%' and ypflag='是')    
            GROUP BY bh,yppinming,idno) a LEFT OUTER JOIN
              (SELECT ypid,jhdanwei, SUM(ypshuliang) AS ypshuliang
             FROM Y_kucun
             GROUP BY ypid,jhdanwei) b ON a.idno = b.ypid  
    GROUP BY a.bh,a.yppinming,a.idno, b.jhdanwei,b.ypshuliang
    這樣試試
      

  2.   

    SELECT a.yppinming,a.bh,a.idno,b.jhdanwei, ISNULL(b.ypshuliang, 0) 
          AS ypshuliang
    FROM (SELECT bh,yppinming,idno  FROM Y_baseinfo  
    where (yppinyinma LIKE @pinyinma+'%'  and ypflag='是' )  OR  (yppinming LIKE @yppinming+'%' and ypflag='是')  OR (yphuaxuemingcheng LIKE ypbianma+'%' and ypflag='是')    
            GROUP BY bh,yppinming,idno) a LEFT OUTER JOIN
              (SELECT ypid,jhdanwei, SUM(ypshuliang) AS ypshuliang
             FROM Y_kucun
             GROUP BY ypid,jhdanwei) b ON a.idno = b.ypid  
    GROUP BY a.bh,a.yppinming,a.idno, b.jhdanwei,b.ypshuliang
    :pinyinma--是變量?
      

  3.   

    left(bh,len(:str))=:str 这部分在哪呢,yppinyinma LIKE @pinyinma+'%' 这又是什么意思呢?
      

  4.   

    delphi写在ADOQuery中的参数使用冒号表示的!
      

  5.   

    去delphi版块问问,这里是mssql
      

  6.   

    建议直接去dephi问问 这里的大部分人不懂DEPHI
      

  7.   

    与其:
    left(bh,len(:str))=:str
    直接:
    bh like :str+'%'