• 嵌套游标以生成复杂的报表


    --以下示例显示如何嵌套游标以生成复杂的报表。为每个供应商声明内部游标
    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
     

  • 相关阅读:
    docker部署springBoot项目
    linux下查看文件内容命令
    nohup后台运行jar与关闭
    nohup优化输出nohup.out日志信息
    Go 精妙的互斥锁设计
    ts找不到全局对象,报错:Cannot find name '__dirname
    定义vscode终端主题色
    element-ui按需引入报错Cannot find module 'babel-preset-es2015' 及多组件引入报错
    c# UWP 墨迹 手写识别
    c# yield return
  • 原文地址:https://www.cnblogs.com/huyong/p/2685681.html
Copyright © 2020-2023  润新知