2012-04-25 89 views
1

如果我在第二次查詢內部值時使用T3.CardCode ='AC0109',該查詢工作正常,但如果使用外部查詢(T3.CardCode = owt.CardCode)或(T3.CardCode = t1.CardCode),則它上升錯誤無法綁定多部分標識符「owt.cardcode」或「t1.cardcode」

無法綁定多部分標識符「owt.cardcode」或「t1.cardcode」 PLZ幫我解決這個問題

SELECT TOP (100) PERCENT 
     owt.CardCode, 
     owt.CardName, 
     owt.DocDate, 
     owt.owtsector, 
     owt.owtzone, 
     owt.Dscription, 
     owt.owtrate, 
     owt.owtqty, 
     owt.amount, 
     ISNULL(inw.inwqty,0) AS Expr1, 
     ISNULL(inw.inwamount, 0) AS Expr2 
FROM (SELECT T1.DocDate, 
      T1.CardCode, 
      T1.CardName, 
      T2.ItemCode, 
      T2.Dscription, 
      T1.U_STTYPE, 
      T1.U_SECTOR AS owtsector, 
      T1.U_ZONE AS owtzone, 
      SUM(T2.LineTotal) AS amount, 
      SUM(T2.Quantity) AS owtqty, 
      T2.CodeBars, 
      T2.Price AS owtrate 
     FROM dbo.OWTR AS T1 
      INNER JOIN dbo.WTR1 AS T2 ON T1.DocEntry = T2.DocEntry 
     WHERE (T1.DocDate = CONVERT(DATETIME, '2012-03-16 00:00:00', 102)) 
     AND (T1.CardCode = N'ac0109') 
     AND (T1.U_STTYPE = N'OUTWARD') 
     AND (T1.U_SECTOR NOT LIKE 'wr%') 
     GROUP BY T1.DocDate, 
       T1.CardCode, 
       T1.CardName, 
       T2.ItemCode, 
       T2.Dscription, 
       T1.U_STTYPE, 
       T2.Price, 
       T1.U_SECTOR, 
       T1.U_ZONE, T2.CodeBars) AS owt 
LEFT OUTER JOIN (SELECT T3.DocDate, 
         T3.CardCode, 
         T3.CardName, 
         T3.U_STTYPE, 
         T4.ItemCode, 
         T4.Dscription, 
         SUM(T4.Quantity) AS inwqty, 
         SUM(T4.LineTotal) AS inwamount 
       FROM dbo.OWTR AS T3 
        INNER JOIN dbo.WTR1 AS T4 ON T3.DocEntry = T4.DocEntry 
       WHERE (T3.DocDate = CONVERT(DATETIME, '2012-03-16 00:00:00', 102)) 
        AND (T3.CardCode = ***owt.CardCode***) 
        AND (T3.U_STTYPE = N' inward ') 
        AND (T3.U_SECTOR NOT LIKE ' wr % ') 
       GROUP BY T3.DocDate, 
         T3.CardCode, 
         T3.CardName, 
         T4.ItemCode, 
         T4.Dscription, 
         T3.U_STTYPE) AS inw 
    ON owt.CardCode = inw.CardCode 
AND owt.DocDate = inw.DocDate 
AND owt.ItemCode = inw.ItemCode 
+0

你想讓我們用這個做什麼? – Arion 2012-04-25 07:32:07

+0

您使用的是什麼RDBMS? – GarethD 2012-04-25 08:13:03

回答

0

的錯誤是在這條線的第二子查詢(INW)內:

AND  (T3.CardCode = owt.CardCode) 

我覺得應該是:

AND  (T3.CardCode = T4.CardCode) 

編輯

在進一步的思考,我不認爲你需要這個斷言在所有的,因爲它已經包含在連接條件。

+0

Infact我將在query1中得到來自用戶的輸入(t1.cardcode的[%1]),並在第二個查詢中引用它。 – 2012-04-25 08:06:58

+0

正如我省略這種情況,我的查詢現在正在工作。我非常感謝你。 – 2012-04-25 08:36:43

相關問題