0

SQL新手在这里。

我正在尝试获取发票编号列表。有两个表 - invoices 和 invoicedetail。invoicedetail 表有一个称为已扫描的字段(它是一个位字段)。如果它已被扫描,则位域为 1。

对于每张发票,invoicedetail 中都有关联记录,但我只想要发票编号列表,其中 invoicedetail 扫描字段中的每个关联记录都是 1。

如果可能,我宁愿在单个查询中执行此操作。

InvoiceDetail 中扫描的记录是所有记录 - 对于返回的任何发票编号。

感谢您的帮助。

4

1 回答 1

1
SELECT 
   InvoiceNumber 
FROM 
   Invoice 
INNER JOIN 
   InvoiceDetail 
ON 
   InvoiceDetail.ID = Invoice.ID 
WHERE 
   InvoiceDetail.ScannedColumn=1 
GROUP BY 
   Invoice.InvoiceNumber

或者...

SELECT
   DISTINCT
   InvoiceNumber
FROM
   Invoice it
INNER JOIN
   InvoiceDetail idt 
ON idt.ID = it.ID
WHERE
  idt.ScannedColumn=1

只需确保更改列名以满足您的需要。使用每个表中的 ID 进行连接,然后使用 aWHERE过滤记录以仅显示已扫描的记录。由于您使用的是位字段,因此您只需使用WHERE ScannedColumn = 1.

于 2012-07-06T19:18:09.090 回答