0

無効になった請求書と、それらが再提出されたかどうかをチェックするクエリがあります。クイックセールが無効になった場合、「クイックセール」がそこで再入札されることは許可されません。私がやりたいのは、「quicksale」が無効になった場合です... 再提出されたフィールド表示「QuickSale」では、許可されていないため、請求書が再提出されたかどうかも確認しないでください。私のクエリは以下のとおりです。t1.Register_Transaction_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

以下は私が得ているものの例です: ご覧のとおり、リンクされていない請求書を単にダンプしているだけです...

-- -------  ---------------------  ------  -------  -------  -------  ---------  ----
2  3******  12/5/2012 12:00:00 AM  REFUND  54.9900  3******  52.9000  Quicksale  user
2  3******  12/5/2012 12:00:00 AM  REFUND  54.9900  3******  59.9800  Quicksale  user
2  3******  12/5/2012 12:00:00 AM  REFUND  54.9900  3******  24.9900  Quicksale  user
4

2 に答える 2

3
-- code
CASE
    WHEN t2.Vehicle_Tag IS NULL THEN 'NO'
    WHEN [COLUMN] IS [CONDITION]
    -- ...
    ELSE 'YES'
END AS [Re-tendered?]
于 2012-12-06T20:02:33.450 に答える
1

これを求めていますか?

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

考えているロジックを示す小さな表を提供していただけると助かります。つまり、この列値の組み合わせに対して、この出力値の組み合わせが必要です。

于 2012-12-06T21:00:32.670 に答える