API QuickBooks: получение счетов и позиций счетов без использования SELECT *

Если я использую следующий запрос QBSQL для получения счетов из QuickBooks:

SELECT * FROM Invoice WHERE CustomerRef = '123'

затем я успешно получаю все счета и позиции для номера клиента «123».

Однако SELECT * кажется излишним и плохой практикой, поэтому вместо этого я попытался получить все допустимые столбцы (из которых я мог бы систематически удалять столбцы, которые мне не нужны):

SELECT Id, SyncToken, MetaData, CustomField, HasAttachment, DocNumber, TxnDate, DepartmentRef, CurrencyRef, ExchangeRate, PrivateNote, TxnStatus, LinkedTxn, Line, TxnTaxDetail, CustomerRef, CustomerMemo, BillAddr, ShipAddr, ClassRef, SalesTermRef, DueDate, ShipMethodRef, ShipDate, TrackingNum, TotalAmt, ApplyTaxAfterDiscount, PrintStatus, EmailStatus, BillEmail, Balance, PaymentType, CheckPayment, CreditCardPayment, DepositToAccountRef, Deposit, AllowIPNPayment FROM Invoice WHERE CustomerRef = '123'

Этот более длинный запрос получает все счета, но отдельные позиции не включаются в каждый счет.

Кто-нибудь знает, как я могу получить все счета и позиции для каждого счета без использования SELECT *?

Большое вам спасибо за вашу помощь.


person Leo Galleguillos    schedule 26.03.2014    source источник
comment
QBSQL может совсем не совпадать с (T)SQL в этом отношении. Вы уверены, что это действительно плохо?   -  person Andrew Barber    schedule 27.03.2014
comment
Эндрю, да, запросы SELECT * выполняются намного медленнее, чем запросы, в которых мы явно извлекаем определенные столбцы.   -  person Leo Galleguillos    schedule 27.03.2014


Ответы (2)


Следующие работы выбирают строку из накладной

Я говорил слишком рано. Это не возвращает все строки.

person Karl Irvin    schedule 27.03.2014
comment
Да, вот что странно. Использование SELECT Line FROM Invoice возвращает два пустых элемента строки без каких-либо полезных данных элемента строки. - person Leo Galleguillos; 27.03.2014

Я предлагаю использовать SELECT *, Line.* from Invoice

Вы можете попробовать это с помощью ApiExplorer.

Добавление снимка введите здесь описание изображения

введите здесь описание изображения

Спасибо

person Manas Mukherjee    schedule 27.03.2014
comment
Использование SELECT *, Line.* FROM Invoice возвращает те же результаты, что и просто SELECT * FROM Invoice. Хотя это хорошая попытка. - person Leo Galleguillos; 27.03.2014
comment
Вы пытаетесь сделать этот колл против QBD или QBO? В QBO я попробовал следующее: qb.sbfinance.intuit .com/v3/company/688779980/query?query=select * from Invoice Он также вернул строки. У нас нет линий для QBD. Для этого мы должны использовать Line.* Не могли бы вы попробовать еще раз. Спасибо - person Manas Mukherjee; 27.03.2014
comment
Я использую QBO. И SELECT *, и SELECT *, Line.* возвращают счета и позиции, и это здорово. Однако я пытаюсь определить, могу ли я получить все счета и позиции БЕЗ использования SELECT *. Я бы предпочел явно указывать столбцы, если это возможно. - person Leo Galleguillos; 28.03.2014