Наш бухгалтерский отдел должен ежемесячно извлекать налоговые данные из нашей MIS и отправлять их онлайн в Департамент доходов. К сожалению, при извлечении данных они дублируются разное количество раз в зависимости от того, в каких юрисдикциях мы должны платить налоги. Все, что ей нужно, это сумма в долларах для одной юрисдикции, для одной строки, потому что она вводит ее на веб-сайте.
Я пытался использовать DISTINCT, чтобы получить только одну запись типа, в сочетании с LEFT ()вытащить только первые 7 символов юрисдикции, но в итоге исключили некоторые результаты, которые должны были быть включеныЯ полагаю, это произошло потому, что дата проводки и сумма на пару транзакций были идентичны. Это были отдельные транзакции, но запрос принял их как дубликаты и проигнорировал их.
Вот несколько примеров выполненных мной запросов, которые были успешными при извлечении большей части данных, но в большинстве случаев слишком многоили недостаточно:
SELECT DISTINCT LEFT("Sales-Tax-Jurisdiction-Code", 7), "Taxable-Base", "Posting-Date"
FROM ARInvoiceTax
WHERE ("Posting-Date" >= '2019-09-01' AND "Posting-Date" <= '2019-09-30')
AND (("Sales-Tax-Jurisdiction-Code" BETWEEN '55001' AND '56763')
OR "Sales-Tax-Jurisdiction-Code" = 'Dakota Cty TT')
ORDER BY "Sales-Tax-Jurisdiction-Code"
Вот запрос, который я могу извлечь из всех данных, и последующий результат ниже:
SELECT "Sales-Tax-Jurisdiction-Code", "Taxable-Base", "Posting-Date"
FROM ARInvoiceTax
WHERE ("Posting-Date" >= '2019-09-01' AND "Posting-Date" <= '2019-09-30')
AND (("Sales-Tax-Jurisdiction-Code" BETWEEN '55001' AND '56763')
OR "Sales-Tax-Jurisdiction-Code" = 'Dakota Cty TT')
ORDER BY "Sales-Tax-Jurisdiction-Code"
Ниже приведен пример вывода:
Jurisdiction | Tax Amount | Posting Date
-------------|------------|-------------
5512100City | $50.00 | 2019-09-02
5512100City | $50.00 | 2019-09-03
5512100City | $70.00 | 2019-09-02
5512100Cnty | $50.00 | 2019-09-02
5512100Cnty | $50.00 | 2019-09-03
5512100Cnty | $70.00 | 2019-09-02
5512100State | $70.00 | 2019-09-02
5512100State | $50.00 | 2019-09-02
5512100State | $50.00 | 2019-09-03
5513100Cnty | $25.00 | 2019-09-12
5513100State | $25.00 | 2019-09-12
5514100City | $9.00 | 2019-09-06
5514100City | $9.00 | 2019-09-06
5514100Cnty | $9.00 | 2019-09-06
5514100Cnty | $9.00 | 2019-09-06
5515100State | $12.00 | 2019-09-11
5516100City | $6.00 | 2019-09-13
5516100City | $7.00 | 2019-09-13
5516100State | $6.00 | 2019-09-13
5516100State | $7.00 | 2019-09-13
Как видите, данные могут быть повсюду. Один почтовый индекс может иметь несколько разных строк. В настоящее время бухгалтерия печатает отчет с этой информацией и в электронной таблице записывает только (1) долларовую сумму за транзакцию. Например, для 55121 ей нужно будет записать 50,00, 50,00 и 70,00 долларов (она подсчитывает их и добавляет общую сумму на веб-сайте), однако SQL-запрос дает мне эти (3) числа (3) раза.
Кажется, я не могу понять запрос, который будет извлекать только один набор данных. К сожалению, я не могу сделать это на основе слов / букв после 00, потому что не во всех юрисдикциях есть все 3 (город, штат, штат) и, таким образом, пытаюсь удалить строки на основе этого, что также удаляет допустимые строки.