チケットは 24 時間有効で、「子供」、「大人」、または「ティーン」のいずれかになります。基本的に、チケットは多数の映画に「ConnectedTo」することができます。たとえば、子供のチケットは年齢制限が PG 以下の映画に関連付けられ、大人のチケットはすべての映画に関連付けられます。
以下は、前月から購入された映画のすべてのチケットに関する情報を返します。
SELECT *
FROM
[Test_DB].[dbo].[Tickets]
INNER JOIN
[Test_DB].[dbo].[Movies]
ON
[Test_DB].[dbo].[Tickets].[ConnectedTo] = [Test_DB].[dbo].[Movies].[MovieID]
WHERE
[Test_DB].[dbo].[Tickets].[DateEntered] >= DATEADD(month, DATEDIFF(month, 0, GETDATE())-1, 0) AND [Test_DB].[dbo].[Tickets].[DateEntered] <= DATEADD(month, DATEDIFF(month, 0, GETDATE()), -1)
各チケットには、任意の数のメモを添付できます。たとえば、チケット所有者に特別割引が提供された場合、それに関するメモが作成されます。同様に、チケットが別のチケットに交換または払い戻しされた場合、メモが作成されます。
以下は、TicketID に基づいて特定のチケットのすべてのメモを返します。
SELECT *
FROM
[Test_DB].[dbo].[Tickets]
JOIN [Test_DB].[dbo].[Notes]
ON [Test_DB].[dbo].[Tickets].[TicketID] = [Test_DB].[dbo].[Notes].[ConnectedTo]
WHERE TicketId = 64903
私の質問は、2 つを組み合わせる方法はありますか? たとえば、SQL の最初のビットは、それぞれが異なる TicketID を持つ 5 つのチケットを返す可能性があります。それに基づいて、2 番目の SQL を使用して、これら 5 つのチケットのすべてのメモを返したいと考えています。
UNION を使用して 2 つの選択を結合することを考えていました...私の脳は、TicketId で 2 つの SQL を結合する必要があると言い続けていますが、試行するたびに間違ってしまいます。どんな助けでも大歓迎です!ありがとう。