मुझे कुछ डीबी 2 एसक्यूएल के साथ कोई समस्या है और वास्तव में कुछ मदद का उपयोग कर सकता है।

संक्षेप में, लोग चाहते हैं कि मैं एक दृश्य बनाऊं। मैंने एक प्रश्न लिखा है जो काम करता है और जो हम चाहते थे उसे लौटाता है ... लेकिन जब मैं इसे 'दृश्य बनाएं' कथन के साथ लपेटता हूं, तो जब मैं इसे किसी भी चीज़ से पूछता हूं तो दृश्य त्रुटियों को फेंक देता है।

क्वेरी है (नाम स्पष्ट रूप से बदल गए हैं):

SELECT DISTINCT "QTable"."Add" "Q_Add", "QTable"."Approved" "Q_Approved", "QTable"."Link" "Q_Link"
 FROM (( 
SELECT * FROM db.schema.VTable) 
 "QTable" LEFT OUTER JOIN (SELECT * FROM db.schema.ETable) 
"QStat" on "QTable"."Status" = "QStat"."ETable") 

हर बार जब मैं इसे चलाता हूं तो मुझे 10 रिकॉर्ड वापस मिलते हैं। बहुत बढ़िया, मैं यही चाहता हूँ। जब मैं इसे एक दृश्य के रूप में लपेटता हूं, जिसे मैं दर्ज करके करता हूं:

CREATE VIEW TestSchema.TestTable AS
SELECT * FROM ( *query I just wrote above*)

यह चलता है (बहुत जल्दी) लेकिन फिर मैं एक बुनियादी SELECT * FROM viewname चलाता हूं मुझे हमेशा एक ही त्रुटि मिलती है:

SQL0206N  "QTable.Status" is not valid in the context where it is used. SQLSTATE=42703

मैं अब कुछ समय के लिए अटका हुआ हूं। मैं मान रहा हूं कि मैं गलत दृश्य बना रहा हूं। कोई विचार? युक्तियाँ?

संपादित करें: डीबी2 11.1

0
DataforDays 17 सितंबर 2018, 04:04

1 उत्तर

आपको एक अलग समस्या हो सकती है। मैंने अभी इसे डीबी 2 10.5 में आजमाया है और यह अच्छी तरह से काम करता है:

create table vtable (
  "Add" int,
  "Approved" int,
  "Link" varchar(20),
  "Status" int
);

create table etable (
  "ETable" int
);

create view my_view1 as
select
  *
from
  (
    SELECT
      DISTINCT "QTable"."Add" "Q_Add",
      "QTable"."Approved" "Q_Approved",
      "QTable"."Link" "Q_Link"
    FROM
      (
          ( SELECT * FROM VTable) "QTable"
          LEFT OUTER JOIN
          (
            SELECT
              *
            FROM ETable
          )
          "QStat" on "QTable"."Status" = "QStat"."ETable"
      )
  )

वैसे भी, आपके पास अत्यधिक कोष्ठक हैं। उन लोगों को हटा दें जिनकी आपको आवश्यकता नहीं है।

और QTable को हमेशा दोहरे उद्धरण चिह्नों में होना चाहिए, जैसा कि "QTable" में है।

1
The Impaler 17 सितंबर 2018, 04:35