سؤال

أنا أستخدم هذا الاستعلام:

SELECT DISTINCT pat.PublicationID
FROM         dbo.PubAdvTransData AS pat INNER JOIN
                  dbo.PubAdvertiser AS pa ON pat.AdvTransID = pa.AdvTransID
WHERE     (pa.AdvertiserID = 31331) AND (pat.LastAdDate > 7 / 1 / 2009)
ORDER BY pat.PublicationID

ويعود 0 نتائج. ما أحاول القيام به هو إضافة في اتحاد مع طاولة PublicationSareAbuy، والذي يحتوي على منشور و ABID (معرف شراء المنطقة). ما أحاول القيام به هو إذا إرجاع الاستعلام أعلاه منشورا موجودا في منطقة شراء المنطقة، فأنا بحاجة إلى تضمين (وهذا هو السبب في أنني كنت أستخدم الاتحاد) معرف شراء المنطقة كمعرف منشور.

كانت هذه محاولتي الأخيرة، لكن مرة أخرى إرجاع 1 نتيجة ما إذا كان الاستعلام العلوي إرجاع نتيجة أو لا ... ذهني قد ذهب فارغا تماما في هذا واحد!

SELECT DISTINCT pat.PublicationID
FROM         dbo.PubAdvTransData AS pat INNER JOIN
                  dbo.PubAdvertiser AS pa ON pat.AdvTransID = pa.AdvTransID
WHERE     (pat.LastAdDate > 7 / 1 / 2009) AND (pat.PublicationID = 29171)
UNION
SELECT     AreaBuy.AreaBuyID AS PublicationID
FROM         AreaBuy INNER JOIN
                  PublicationAreaBuy ON AreaBuy.AreaBuyID =         PublicationAreaBuy.AreaBuyID INNER JOIN
                  dbo.PubAdvertiser AS PubAdvertiser_1 ON PubAdvertiser_1.PublicationID = PublicationAreaBuy.PublicationID
ORDER BY pat.PublicationID
هل كانت مفيدة؟

المحلول

أنا آسف لأنني غير قادر على فهم المشكلة الخاصة بك بالضبط، لكنني أتساءل عما إذا كانت مشكلتك تنبع من حقيقة أن مشغل "الاتحاد" سيقضي على صفوف مكررة (نوع من مثل "تحديد متميز" على المشترك استفسار). إذا كنت لا تريد هذا السلوك، استخدم "Union All" بدلا من ذلك.

شيء آخر لاحظته على الفور كان هذا الجزء: "(pat.lastaddate> 7/1/2009). يبدو أنك تحاول مقارنة "LastadDate" إلى قيمة تاريخية مشفرة. في الواقع، تقارن "LastadDate" بقيمة 7 مقسوما على 1 مقسوما على 2009. نظرا لأن هذا هو شعبة عدد صحيح، فإن تعبيرك هو أساسا "(pat.lastaddate> 0)".

إذا كنت ترغب حقا في المقارنة مع تاريخ مشدود بشدة، فأنت بحاجة إلى وضع قيمة التاريخ في علامات اقتباس واحدة، مثل هذا "(pat.lastaddate>" 7/1/2009 ")". في تطبيق الإنتاج، تعد التواريخ الشديدة المشفوفة فكرة سيئة، لكنني أفترض أن هذا ليس فقط لأغراض الاختبار / تصحيح الأخطاء.

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