Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何返回发票编号-其中所有关联的明细记录的位字段都设置为1_Sql Server 2008 - Fatal编程技术网

Sql server 2008 如何返回发票编号-其中所有关联的明细记录的位字段都设置为1

Sql server 2008 如何返回发票编号-其中所有关联的明细记录的位字段都设置为1,sql-server-2008,Sql Server 2008,这里是SQL新手 我想弄一份发票号码的清单。有两个表-发票和发票明细。invoicedetail表有一个名为scanned的字段,它是一个位字段。如果已扫描,则位字段为1 对于每个发票,invoicedetail中都有相关记录,但我只想要发票编号列表,其中invoicedetail的扫描字段中的每个相关记录都是1 如果可能的话,我宁愿在单个查询中执行此操作 InvoiceDetail中扫描的记录是返回的任何发票号的所有记录 谢谢你的帮助 SELECT InvoiceNumber FRO

这里是SQL新手

我想弄一份发票号码的清单。有两个表-发票和发票明细。invoicedetail表有一个名为scanned的字段,它是一个位字段。如果已扫描,则位字段为1

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

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

InvoiceDetail中扫描的记录是返回的任何发票号的所有记录

谢谢你的帮助

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


请确保更改列名以满足您的需要。将每个表中的ID用于联接,然后使用WHERE筛选记录以仅显示扫描的记录。因为您使用的是位字段,所以只需使用WHERE ScannedColumn=1。

如果您想要的不仅仅是发票号码,那么分组解决方案很快就会成为一个难题。SELECT*FROM Invoice WHERE Id IN SELECT Id FROM InvoiceDetail WHERE Scanned=1此解决方案可能会遇到性能问题bigggg@Paul-这不取决于我或你,OP只要求提供发票号码。作为一种良好的做法,您永远不应该使用SELECT*。。。即使你需要所有的列,你也应该明确地标记你想要的每一列。你是对的,这正是他想要的数字。然而,我喜欢为冲击做好准备,这是有问题的。我多年来开发的障碍是编程客户指定的软件。从发票中选择[Invoices]。[InvoiceID]在idt上内部连接InvoiceDetail idt。InvoiceID=it.InvoiceID,其中idt.Scanned=1 ORDER BY it.InvoiceID DESC-根据我的表架构,这是特定于字段的,但我不理解错误。它是多部分标识符Invoices.InvoiceID无法绑定。我试图从发票中明确地识别InvoiceID,但这是我所能想到的,没有任何帮助。如何更正此问题?请在InvoiceDetail.InvoiceID=Invoices.InvoiceID其中InvoiceDetail.Scanned=1 ORDER BY Invoices.InvoiceID DESC工作时,从Invoices内部联接InvoiceDetail中选择不同的[Invoices].[InvoiceID],所以看起来我只是需要删除别名并正确格式化它-我似乎无法格式化评论-抱歉。但是你确实回答了我的问题,所以非常感谢悬崖
SELECT
   DISTINCT
   InvoiceNumber
FROM
   Invoice it
INNER JOIN
   InvoiceDetail idt 
ON idt.ID = it.ID
WHERE
  idt.ScannedColumn=1