sql语句如下
select top 10 * from View_BrandInfo where brand_ispass=1 and brand_sort='0' and (brand_id in (select brand_id from BrandInfo  
where not exists(select 1 from BrandInfo where brand_name=BrandInfo.brand_name and brand_class=BrandInfo.brand_class 
and brand_id>BrandInfo.brand_id))) and (exists (select count(product_id) from ProductInfo where product_brand=brand_name 
having count(product_id)>0) or exists (select count(scale_id) from ScaleInfo where scale_brandid=brand_name having count(scale_id)>0))
order by brand_id
 我使用分页存储过程不能用,提示表的别名无效,小弟不知道该怎么写分页了 请大家帮忙sql 分页存储分页select

解决方案 »

  1.   

    SELECT TOP 10
            *
    FROM    View_BrandInfo
    WHERE   brand_ispass = 1
            AND brand_sort = '0'
            AND ( brand_id IN (
                  SELECT    brand_id
                  FROM      BrandInfo
                  WHERE     NOT EXISTS ( SELECT 1
                                         FROM   BrandInfo
                                         WHERE  brand_name = BrandInfo.brand_name
                                                AND brand_class = BrandInfo.brand_class
                                                AND brand_id > BrandInfo.brand_id ) ) )
            AND ( EXISTS ( SELECT   COUNT(product_id)
                           FROM     ProductInfo
                           WHERE    product_brand = View_BrandInfo.brand_name   --添加上View_BrandInfo
                           HAVING   COUNT(product_id) > 0 )
                  OR EXISTS ( SELECT    COUNT(scale_id)
                              FROM      ScaleInfo
                              WHERE     scale_brandid = View_BrandInfo.brand_name  --添加上View_BrandInfo
                              HAVING    COUNT(scale_id) > 0 )
                )
    ORDER BY brand_id
      

  2.   

    我刚才写的语句是可以读取出来的 并 显示前10条的数据  我现在想知道的是分页的sql语句怎么写,上面功能没有实现分页效果的。
      

  3.   


    搜索一下分页,挺多的。 
    例如http://blog.csdn.net/bing1051/article/details/7035812参考改一下即可。