0

データベースに 3 つのテーブルがあり、1 つはヨガのクラス、もう 1 つはメンバーとそれらの間の共通部分です。指定したクラスの詳細と各メンバーの名前と連絡先番号を出力するストアド プロシージャを作成したいと考えています。クラス。レポートの出力は、次の形式と同じである必要があります。

YOGA CLASS REPORT:
___________________

Class ID: 1112
Week day:   Monday    [Time: 07:00:00]
Studio Number: 1

No.  Member Name         Contact Number
________________________________________
1    John Doe            +26 83 562 3953

これまでのところ、私は持っています:

CREATE PROCEDURE sp_Report  
@classID SMALLINT  
AS  
  IF NOT EXISTS(SELECT * FROM class WHERE classID = @classID)      
  BEGIN  
     RAISERROR ('classID does not exist',16,1)  
     RETURN  
  END

  DECLARE @classWeekday VARCHAR(15)  
  DECLARE @classTime TIME  
  DECLARE @classStudioNo TINYINT

  SELECT @classWeekday = class.classWeekday, @classTime = class.classTime, 
         @classStudioNo = class.classStudioNo  
  FROM class  
  WHERE @classID = classID

  PRINT 'YOGA CLASS REPORT'  
  PRINT 'Class code:' +CAST(@classID AS VARCHAR)  
  PRINT 'Week day:' +@classWeekday +'[Time:' + CAST(@classTime AS VARCHAR)+ ']'   
  PRINT 'Studio Number' +CAST(@classStudioNo AS VARCHAR)  

特定のクラスに出席するすべてのメンバーを印刷するにはどうすればよいですか? どんな助けでも大歓迎ですありがとう。

4

3 に答える 3

0

このようなものはあなたに各クラスに参加する人々を与えるでしょう...

SELECT 
     c.MemeberID
     , m.MemberName
     , m.ContactNumber
FROM 
     class c
     INNER JOIN members m ON
         c.MemberID = m.MemberID 
WHERE c.classID = @classID

このStackOverflowの質問を見ると、なぜ実際に使用しているのPRINTでしょうか。

于 2012-07-19T17:57:34.680 に答える
0

カーソルを使用しようとしましたか?

PRINT 'YOGA CLASS REPORT' 

DECLARE cClasses CURSOR FOR
SELECT classWeekday, classTime, classStudioNo  
FROM class  
WHERE classID = @classID

OPEN cClasses
FETCH NEXT FROM cClasses INTO @classWeekday, @classTime, @classStudioNo
WHILE @@FETCH_STATUS = 0
BEGIN

    PRINT 'Class code:' +CAST(@classID AS VARCHAR)  
    PRINT 'Week day:' +@classWeekday +'[Time:' + CAST(@classTime AS VARCHAR)+ ']'   
    PRINT 'Studio Number' +CAST(@classStudioNo AS VARCHAR)

FETCH NEXT FROM cClasses INTO @classWeekday, @classTime, @classStudioNo
END
CLOSE cClasses
DEALLOCATE cClasses

ここに msdn DECLARE CURSOR SQL SERVERの公式ドキュメントがあります

于 2012-07-19T16:30:40.880 に答える