【问题标题】:QuickBooks API: Get Invoice and Invoice Line Items without using SELECT *QuickBooks API:在不使用 SELECT * 的情况下获取发票和发票行项目
【发布时间】:2014-03-26 20:52:32
【问题描述】:

如果我使用以下 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 * 的情况下获取每张发票的所有发票和行项目?

非常感谢您的帮助。

【问题讨论】:

  • QBSQL 在这方面可能与 (T)SQL 完全不同。你确定这真的是一件坏事吗?
  • 安德鲁,是的,SELECT * 查询的执行速度比我们显式检索特定列的查询慢得多。

标签: sql api quickbooks intuit-partner-platform quickbooks-online


【解决方案1】:

以下作品 从发票中选择行

我说得太早了。这不会返回所有行。

【讨论】:

  • 是的,这很奇怪。使用 SELECT Line FROM Invoice 返回两个空白行项目,没有任何有用的行项目数据。
【解决方案2】:

我建议使用SELECT *, Line.* from Invoice

您可以使用ApiExplorer 尝试此操作。

添加快照

谢谢

【讨论】:

  • 使用SELECT *, Line.* FROM Invoice 返回的结果与简单的SELECT * FROM Invoice 相同。不过,这是一个很好的尝试。
  • 您正在尝试针对 QBD 或 QBO 进行此调用?在 QBO 中,我现在尝试了以下操作 - qb.sbfinance.intuit.com/v3/company/688779980/query?query=select * from Invoice 它也返回了行。我们没有得到 QBD 的线路。为此,我们应该使用 Line。* 你能再试一次吗?谢谢
  • 我正在使用 QBO。 SELECT *SELECT *, Line.* 都返回发票和行项目,这很棒。但是,我正在尝试确定是否可以在不使用 SELECT * 的情况下检索所有发票和行项目。如果可能,我更愿意明确说明列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多