Мне нужно получить запрос данных из большой таблицы, где я могу сравнить как предметы с их налоговыми ставками - PullRequest
0 голосов
/ 22 марта 2011

У меня есть таблица, в которой есть itemno (номер позиции продукта) и tax_rate, которые могут содержать до 321 группы марок. Группы марок предназначены для разных налоговых ставок в городах, округах и штатах.

Мне нужно сделать запрос, который покажет мне tax_rate и stamp_group для каждого itemno. Поскольку для каждого элемента itemno имеется несколько строк, я хочу организовать свой запрос, чтобы он показывал itemno слева и группу штампов сверху, а затем tax_rate в таблице.

Я хочу экспортировать в электронную таблицу Excel, чтобы предоставить ее в отдел соответствия, чтобы они могли сканировать подобные объекты и гарантировать, что налоговые ставки верны.

Заранее благодарю за любую помощь!

Чарльз Петерсон

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Также рассмотрите возможность использования базы данных Access и их мастера перекрестных таблиц, чтобы сделать сводку за вас, или вы можете легко поворачиваться в Excel. SQL - не лучший инструмент для поворота данных.

1 голос
/ 22 марта 2011

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 () не понравится.В этом случае я бы предложил создать справочную таблицу с налоговыми ставками, позволяющую дать каждому налоговому номеру числовой идентификатор.Тогда вы можете использовать этот идентификатор.

...