找了半天网上说.检索和赋值不能同时进行..
我这个 该怎么赋值呢.
  declare v_a var(20);
 set @v_flag = concat(' select  count(pro_integral)  from sales_product_management where igtxtParentCardNoTxt in ( select igtxtParentCardNoTxt  from  sales_product_management where pro_integral ="', i_First_Introduer , '" and igtxtParentCardNoTxt = "' , j_First_Introduer ,'" GROUP BY shop_igtxtShopCardNoTxt ) and placeCmb = "' , k_First_Introduer,'"') ;   prepare ee from @v_flag;
   EXECUTE   ee  ;
   DEALLOCATE PREPARE ee; 想把这个检索出来的数据 赋值给一个变量 v_a.该怎么写呢.

解决方案 »

  1.   

    同样使用@开头的变量就可以的,如
    set @v_flag = concat(' select  count(pro_integral) into @v_a  from sales_product_management where
    .......
      

  2.   

    如果单纯是个 select  count(pro_integral) into @v_a  from sales_product_management where...语句
      可以 set @dff = select  count(pro_integral) into @v_a  from sales_product_management where... ; 
      
    但是要有  EXECUTE  来执行这个语句的话 结果怎么赋值呢.  ; 
      

  3.   

    一样啊,你执行完execute,再select @v_a看,是不是值已经赋成功了啊?
      

  4.   

    @开头的是用户变量,当前session有效的,赋值后,你在存储过程里面外面都可以继续使用。
      

  5.   

    不好意思.我刚接触存储过程..
     刚才那个变量为什么没有 declare 就可以用呢。
      

  6.   

    set @v_flag = concat(' select  count(pro_integral) into @v_a  from sales_product_management where...);
    select @v_a;
    set @rr=@v_a;
      

  7.   


    用户变量就是这样,不需要declare
      

  8.   

    用用户变量进行赋值即可
    有2种形式如下:
    "' select  count(pro_integral)  from sales_product_management ..."-->
    "' select  count(pro_integral) into @total_count  from sales_product_management ..."-----------------------------------------------------------------' select  count(pro_integral)  from sales_product_management where ....
    GROUP BY shop_igtxtShopCardNoTxt ) and placeCmb = "' , k_First_Introduer,'"'------------->' select  count(pro_integral)  from sales_product_management where ....
    GROUP BY shop_igtxtShopCardNoTxt ) and placeCmb = "' , k_First_Introduer,'" into @total_count'
      

  9.   


    因为·@变量是SESSION变量,不需要declare
    在存储过程中的 declare 的变量仅在存储过程内可见。 而你的execute stmt 已经是在存储过程外了,所以不能用内存变量,必须用 @