zoukankan      html  css  js  c++  java
  • 嵌套游标以生成复杂的报表

    --以下示例显示如何嵌套游标以生成复杂的报表。为每个供应商声明内部游标
    SET NOCOUNT ON

    DECLARE @vendor_id int, @vendor_name nvarchar(50),
    @message varchar(80), @product nvarchar(50)

    PRINT '-------- Vendor Products Report --------'

    DECLARE vendor_cursor CURSOR FOR
    SELECT VendorID, Name
    FROM Purchasing.Vendor
    WHERE PreferredVendorStatus = 1
    ORDER BY VendorID

    OPEN vendor_cursor

    FETCH NEXT FROM vendor_cursor
    INTO @vendor_id, @vendor_name

    WHILE @@FETCH_STATUS = 0
    BEGIN
    PRINT ' '
    SELECT @message = '----- Products From Vendor: ' +
    @vendor_name

    PRINT @message

    -- Declare an inner cursor based  
    -- on vendor_id from the outer cursor.

    DECLARE product_cursor CURSOR FOR
    SELECT v.Name
    FROM Purchasing.ProductVendor pv, Production.Product v
    WHERE pv.ProductID = v.ProductID AND
    pv.VendorID = @vendor_id-- Variable value from the outer cursor

    OPEN product_cursor
    FETCH NEXT FROM product_cursor INTO @product

    IF @@FETCH_STATUS <> 0
    PRINT '         <<None>>'    

    WHILE @@FETCH_STATUS = 0
    BEGIN

    SELECT @message = '         ' + @product
    PRINT @message
    FETCH NEXT FROM product_cursor INTO @product

    END

    CLOSE product_cursor
    DEALLOCATE product_cursor

    -- Get the next vendor.
    FETCH NEXT FROM vendor_cursor
    INTO @vendor_id, @vendor_name
    END
    CLOSE vendor_cursor
    DEALLOCATE vendor_cursor
     

  • 相关阅读:
    变量使用的注意事项
    计算机存储单元
    常量
    mybatis报错There is no getter for property named '***' in 'class ***'
    sonar-scanner扫描各种出错解决
    SonarQube搭建的各种问题
    linux每日命令(18):whereis命令
    Django视图层之路由配置系统(urls)
    Django---MTV模型、基本命令、简单配置
    web框架
  • 原文地址:https://www.cnblogs.com/huyong/p/2685681.html
Copyright © 2011-2022 走看看