سؤال

أنا أعاني من جدولين مع سمات مثل date(datetime),headline(varchar),text(text)

الآن أريد أن أؤدي إلى اتحاد كل هذين الجدولين والفرز حسب DateTime. عند القيام بذلك ، أحصل على الخطأ:

يُسمح فقط بتأسيس النصوص في جداول العمل ، أو لا ترتكز على أعمدة NTEXT أو NTEXT أو الصور. أنتج معالج الاستعلام خطة استعلام تتطلب نصًا أو عمودًا نصية أو صورة في جدول العمل.

بعد المحاولة ، اكتشفت أن سمة النص هي التي تسبب الخطأ. لكن ماذا تفعل؟ حاولت الصب إلى Varchar دون أي نجلة. يستخدم كلا الجدولين تنسيق النص في سمة النص.

أيضا عند إزالة الطلب به كل شيء يعمل بشكل جيد. ماذا أفعل؟

يقع استعلام SQL الأصلي أدناه ، ولكن يمكنك فقط الرد على المبسطة أعلاه.

SELECT     id, datetime, author, headline, intro, text, type, toppriority,
           secondpriority, comments, companyid, '1' source 
FROM     Table1
UNION ALL
SELECT     AutoID AS id, Dato AS datetime,
           ID COLLATE SQL_Latin1_General_CP1_CI_AS AS author, NULL AS headline, 
           NULL AS intro, Notat COLLATE SQL_Latin1_General_CP1_CI_AS AS text,
           CAST(NotatTypeID AS VARCHAR) AS type,
           NULL AS toppriority, NULL AS secondpriority, NULL AS comments,
           Selskabsnummer AS companyid, '2' source 
FROM     Table2
WHERE     (NotatTypeID = '5') OR (NotatTypeID = '6')
ORDER BY datetime DESC

شكرا مقدما

هل كانت مفيدة؟

المحلول

إحدى الطرق التي تدور بها هذا هو تشغيل الاتحاد كاستعلام SUP وطلب النتائج بعد ذلك:

SELECT * FROM 
(
    SELECT     id, datetime, author, headline, intro, text, TYPE, toppriority,
            secondpriority, comments, companyid, '1' source 
    FROM     Table1
    UNION ALL
    SELECT     AutoID AS id, Dato AS datetime,
            ID COLLATE SQL_Latin1_General_CP1_CI_AS AS author, NULL AS headline, 
            NULL AS intro, Notat COLLATE SQL_Latin1_General_CP1_CI_AS AS text,
            CAST(NotatTypeID AS VARCHAR) AS TYPE,
            NULL AS toppriority, NULL AS secondpriority, NULL AS comments,
            Selskabsnummer AS companyid, '2' source 
    FROM     Table2
    WHERE     (NotatTypeID = '5') OR (NotatTypeID = '6')
) a
ORDER BY datetime DESC

نصائح أخرى

ماذا عن إلقاء حقل DateTime إلى بعض حقل النص في الفهرس؟ يرجى ملاحظة أن استخدام "DateTime" و "النص" كأسماء الحقل/الاسم المستعار يمكن أن يكون مربكًا للغاية ، ومصدر للمشاكل المحتملة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top