2010-06-21 90 views
1

我有這個疑問我想知道這個查詢方法是否可行?

SELECT  PaymentDetails_ID AS Pay_ID, Type, Description, Details, Due_Date, PaymentDetails_Cleared, Amount, Mode, 
          (SELECT  Bill_ID 
          FROM   Bill_Payment_Records 
          WHERE  (Payment_ID = Pay_ID)) AS Bill_No 
FROM   Payment_Details 
WHERE  (Mode = 1) AND (PaymentDetails_Cleared = 0) AND (Due_Date BETWEEN @Start_Date AND @End_Date) 

在這裏我想補充,可以在內部查詢中使用的變量。 像我想Bill_ID可以在查詢中確定。

正如我研究,我不認爲它的可能,但有什麼辦法我可以做到這一點。

+0

這個佈局是不太容易閱讀。 .. – MatBailie 2010-06-21 14:35:59

回答

0

我猜你對[Bill_No]的計算有問題。有三個可能的問題,我可以想到,其中第一個我很確定是主要問題:
1. [Pay_ID]實際上是[PaymentDetails_ID]。您不能在分配別名的相同SELECT語句內使用別名。
2.您不在相關的子查詢中指定表名。
3.您可能從相關的子查詢中返回多於1條記錄。

試試這個嗎?

SELECT 
    PaymentDetails_ID AS Pay_ID, 
    Type, 
    Description, 
    Details, 
    Due_Date, 
    PaymentDetails_Cleared, 
    Amount, 
    Mode, 
    (
     SELECT 
     TOP 1 
     Bill_ID 
     FROM 
     Bill_Payment_Records 
     WHERE 
     [Bill_Payment_Records].Payment_ID = [Payment_Details].PaymentDetails_ID) 
    ) AS Bill_No 
FROM 
    Payment_Details 
WHERE 
    (Mode = 1) 
    AND (PaymentDetails_Cleared = 0) 
    AND (Due_Date BETWEEN @Start_Date AND @End_Date) 

(只有「TOP 1」和表名添加到相關聯的子查詢。「Pay_ID」改爲「PaymentDetails_ID」。)

1

不知道你的問題,但據我可以使用可變select語句裏面像這樣的查詢增加@billid

SELECT  PaymentDetails_ID AS Pay_ID, Type, Description, Details, Due_Date, PaymentDetails_Cleared, Amount, Mode, 
    (SELECT  Bill_ID 
      FROM   Bill_Payment_Records 
      WHERE  (Payment_ID = @billid)) AS Bill_No 
     FROM   Payment_Details 
    WHERE  (Mode = 1) AND (PaymentDetails_Cleared = 0) AND (Due_Date BETWEEN @Start_Date AND @End_Date) 
+0

我知道,但收費的變量是這個查詢執行期間產生 – Mobin 2010-06-21 12:05:45

+0

發表您的查詢比如果可能的話 – 2010-06-21 16:35:52

0

這是可能的,但不正確的方式做,因爲它就像你把固定值在查詢 中,除非您使用循環或光標來運行查詢。

+0

您能否提供我一些閱讀或任何鏈接 可以是任何例如 – Mobin 2010-06-21 12:13:01

+0

聲明@bill_ID我可以給解決方案int 將光標聲明爲選擇查詢以供您使用 插入您想要在C中使用的變量列表ursor begin 使用您的子查詢並在 中設置您的變量從TableName中選擇@BillID = BillId其中標準 用戶原始查詢並將@BillID放入此處。 從Tablename中選擇* Billid = @ BillID end 取消分配光標 – KuldipMCA 2010-06-21 12:19:06

+0

我無法執行該操作。你可以說得更詳細點嗎。 :$ – Mobin 2010-06-21 13:00:31

相關問題