У меня есть 3 таблицы A, B, C
- A имеет столбцы идентификатора и имени
- B содержит столбцы идентификатора и PIN-кода
- C имеет столбцы Имя и Сумма
Чтобы получить общую сумму 10 лучших ПИН-кодов, я использую:
SELECT TOP 10 PIN, SUM(Amount) AS PIN_Amount
FROM A, B, C
WHERE
C.Name IN(A.Name) AND (A.ID = B.ID)
GROUP BY PIN
ORDER BY PIN_Amount DESC
Как получить только сумму ТОП-100 из 10 лучших ПИН-кодов?
Вот мои таблицы:
CREATE TABLE [dbo].[A](
[ID] [int] NOT NULL,
[Name] [varchar](10) NULL,
CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[B](
[ID] [int] NULL,
[PIN] [int] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[C](
[Name] [varchar](10) NOT NULL,
[Amount] [int] NULL,
CONSTRAINT [PK_C] PRIMARY KEY CLUSTERED
(
[Name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO