Sql 如何将第三件添加到“中”;案例;陈述

Sql 如何将第三件添加到“中”;案例;陈述,sql,sql-server,Sql,Sql Server,我有一个查询,检查a是否存在作废发票,以及是否重新提交了发票。我们不允许在那里重新招标“快速销售”,因为如果快速销售无效,我的查询就会失控。我想做的是,如果“流沙”已经无效。。。在“重新提交”字段显示“QuickScale”时,也不应检查发票是否已重新提交,因为我们不允许这样做。下面是我的查询,我们将搜索t1.Register\u Transaction\u Type列,查看是否为“Quick”类型。所有其他交易都可以 SELECT t1.Store_Number, t

我有一个查询,检查a是否存在作废发票,以及是否重新提交了发票。我们不允许在那里重新招标“快速销售”,因为如果快速销售无效,我的查询就会失控。我想做的是,如果“流沙”已经无效。。。在“重新提交”字段显示“QuickScale”时,也不应检查发票是否已重新提交,因为我们不允许这样做。下面是我的查询,我们将搜索t1.Register\u Transaction\u Type列,查看是否为“Quick”类型。所有其他交易都可以

SELECT        
  t1.Store_Number, 
  t1.Invoice_Number, 
  t1.Invoice_Date, 
  t1.Vehicle_Tag, 
  t1.Void_Reason, 
  vt1.Invoice_Total, 
  t2.Invoice_Number AS [New Invoice #], 
  t2.Vehicle_Tag AS [Vehicle Tag], 
  t2.Invoice_Total AS [New Invoice Total], 
  CASE 
    WHEN t2.Vehicle_Tag IS NULL THEN 'NO'
    WHEN t1.register_transaction_type = 'QUICK' THEN 'Quicksale'
    ELSE 'YES'
  END AS [Re-tendered?], 
  User_Tb.User_Name, 
  t1.Register_Transaction_Type
FROM            
  Invoice_Tb AS t1 
  INNER JOIN Employee_Tb 
    ON t1.Void_Employee_Tax_Payer_Id = Employee_Tb.Tax_Payer_Id 
  INNER JOIN User_Tb 
    ON Employee_Tb.User_Id = User_Tb.User_Id 
  LEFT OUTER JOIN Invoice_Tb AS t2 
    ON t1.Vehicle_Tag = t2.Vehicle_Tag AND 
       t2.Void_Flag = 'n' AND 
       t2.Invoice_Date >= DATEADD(day, DATEDIFF(day, 0, GETDATE()) - 1, 0) AND
       t2.Invoice_Date < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
WHERE        
  (t1.Void_Flag = 'y') AND 
  (t1.Invoice_Date >= DATEADD(day, DATEDIFF(day, 0, GETDATE()) - 1, 0)) 
  AND (t1.Invoice_Date < DATEADD(day, DATEDIFF(day, 0, GETDATE()),0)) 
  AND (t1.Store_Number = '2')
ORDER BY t1.Store_Number, t1.Invoice_Date

你是要这个吗

CASE
  WHEN t1.Register_Transaction_Type = 'Quick' THEN 'QuickSale'
  WHEN t2.Vehicle_Tag IS NULL THEN 'NO'
  ELSE 'YES'
  END AS [Re-tendered?]

如果您能提供一个小表格,显示您心目中的逻辑,可能会有所帮助,例如,对于这种列值组合,我想要这种输出值组合。

您是这样要求的吗

CASE
  WHEN t1.Register_Transaction_Type = 'Quick' THEN 'QuickSale'
  WHEN t2.Vehicle_Tag IS NULL THEN 'NO'
  ELSE 'YES'
  END AS [Re-tendered?]

如果您能提供一个小表格,显示您心目中的逻辑,这可能会有所帮助,例如,对于这种列值组合,我希望使用这种输出值组合。

我甚至无法发现您在凌乱的SQL中提到的列。您可能希望首先修复格式(如果您当时看到了解决方案,我不会感到惊讶),查询可能会比当前使用更多的换行符。我甚至无法发现您在凌乱的SQL中提到的列。您可能希望首先修复格式(如果您当时看到了解决方案,我不会感到惊讶)。查询可能会使用比当前更多的换行符。这对于添加“快速销售”非常有用,但是它仍然会搜索显示30个结果的发票的“重新提交者”。它应该只显示1。您可以在WHEN语法中添加AND子句。这对于添加“QuickScale”非常有用,但是它仍然会搜索显示30个结果的发票的“retender”。它应该只显示1。您可以在WHEN语法中添加AND子句。请参见上文。我编辑了包含“交易类型”的查询,该查询显示为“快速缩放”。我还包括了“输出”,你会看到它不断抓取更多的发票,它没有重新招标。它应该只列出初始发票,然后说“快速缩放,不列出任何其他发票信息。@Shmewnix-抱歉,您的示例输出不会启发那些看不到输入也看不到您想要什么的用户。”。发票如何相互关联?您是否基于某种条件试图断开
T1
T2
之间的
外部连接?
。。。左侧外部联接发票\u Tb为t1上的t2。注册\u事务\u类型!='“快速”和…
?见上文。我编辑了包含“交易类型”的查询,该查询显示为“快速缩放”。我还包括了“输出”,你会看到它不断抓取更多的发票,它没有重新招标。它应该只列出初始发票,然后说“快速缩放,不列出任何其他发票信息。@Shmewnix-抱歉,您的示例输出不会启发那些看不到输入也看不到您想要什么的用户。”。发票如何相互关联?您是否基于某种条件试图断开
T1
T2
之间的
外部连接?
。。。左侧外部联接发票\u Tb为t1上的t2。注册\u事务\u类型!='“快速”和…
CASE
  WHEN t1.Register_Transaction_Type = 'Quick' THEN 'QuickSale'
  WHEN t2.Vehicle_Tag IS NULL THEN 'NO'
  ELSE 'YES'
  END AS [Re-tendered?]