SQL Server 2000 не имеет оператора типа PIVOT.Это означает, что у вас фактически есть два варианта ...
1. Жесткий код запроса со всеми группами штампов 321
2. Верните результаты в нормализованной форме и VBA Excel поместит их в столбцы
Я бы допустил ошибку на стороне последнего, так как он больше относится к представлению, чем к данным.Но если первое необходимо, это будет выглядеть примерно так ...
SELECT
itemno,
MAX(CASE stamp_group WHEN '1' THEN taxrate ELSE NULL END) AS taxrate_1,
MAX(CASE stamp_group WHEN '2' THEN taxrate ELSE NULL END) AS taxrate_2,
MAX(CASE stamp_group WHEN '3' THEN taxrate ELSE NULL END) AS taxrate_3
FROM
myTable
GROUP BY
itemno
Это предполагает, что налоговый код является числовым, и что каждая комбинация (itemno, stamp_group) имеет не более одного налогового налога.
(Примечание. MAX () будет видеть целую группу значений NULL из оператора CASE и только одно значение, отличное от NULL.)
Если налоговая ставка не является числовой, MAX () не понравится.В этом случае я бы предложил создать справочную таблицу с налоговыми ставками, позволяющую дать каждому налоговому номеру числовой идентификатор.Тогда вы можете использовать этот идентификатор.