نمایش نتایج 1 تا 7 از 7

نام تاپیک: جمع دو ستون از یک جدول دارای شرط بدون فیلد کلید

  1. #1

    جمع دو ستون از یک جدول دارای شرط بدون فیلد کلید

    باسلام

    یک جدول داریم به نام Data

    سه ستون داره به نام mark1 , mark2 و code

    دو کوئری داریم که هر کدام بر اساس فیلد code روی ستون های mark1 , mark2 یک شرط خاص را اعمال میکند.


    حالا باید یک گزارش داشته باشیم که این دو ستون رو با مقادیرش نمایش بده و Mark1+Mark2 کنه و در یک textbox نمایش بده.

    نکته: ما در این جدول فیلد کلید نمیتونیم داشته باشیم.(این دیتا رو از یک فایل اکسل که وصله به این اکسس میخونیم)
    ستون ها همه shortText هستند و عددی نیستند.

    از اونجایی که کلید نداریم داده تکراری و اشتباه نشون میده چطور میشه این مشکل رو حل کرد؟

    ممنون میشم از اساتید بزرگوار راهنمایی کنند

    فایل نمونه رو پیوست کردم تا مفهوم بهتر منتقل بشه
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: جمع دو ستون از یک جدول دارای شرط بدون فیلد کلید

    یک مقدار گنگ مطرح کردین.
    براساس همین دو کوئری g10,g100 دقیقا خروجی رو مشخص کنین که چی باید باشه: بصورت یک جدول یا تصویرش

  3. #3

    نقل قول: جمع دو ستون از یک جدول دارای شرط بدون فیلد کلید

    خروجی رو در فالب یک عکس گذاشتم

    فایل اکسس رو هم مجدد گذاشتم

    سپاس
    عکس های ضمیمه عکس های ضمیمه
    فایل های ضمیمه فایل های ضمیمه

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: جمع دو ستون از یک جدول دارای شرط بدون فیلد کلید

    اینکه در جدول data فیلد کلید ندارین مهم نیست، باید در کوئری های g10,g100 یک فیلد ردیف داشته باشین که ندارین.
    اگر sql server میبود خب خیلی راحت میتونستیم از rownumber استفاده کنیم. اینجا یک تابع براش مینویسیم و شبیه سازی میکنیم:

    Dim XX As Long
    Public Function RX(x As Variant) As Long
    XX = Nz(XX, 0) + 1
    RX = XX
    End Function


    حالا از این تابع برای ساخت جداول موقت g10,g100 استفاده میکنیم (بجای کوئری)

    SELECT mark1,RX([code]) AS ID INTO g10 FROM data WHERE code In ('11','12','13')
    SELECT mark2,RX([code]) AS ID INTO g100 FROM data WHERE code In ('150','300')


    g10.PNG
    g100.PNG


  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: جمع دو ستون از یک جدول دارای شرط بدون فیلد کلید

    حالا که شماره ردیف ID رو داریم کافی هست این دو جدول رو outer join کنیم، که این رو هم در اکسس نداریم!
    بنابراین یکبار left join و یکبار right join و نتایج رو با هم union میکنیم:

    SELECT g10.mark1, g100.mark2
    FROM g10 LEFT JOIN g100
    ON g10.ID = g100.ID
    UNION
    SELECT g10.mark1, g100.mark2
    FROM g10 RIGHT JOIN g100
    ON g10.ID = g100.ID

    g10_g100.PNG

  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: جمع دو ستون از یک جدول دارای شرط بدون فیلد کلید

    حالا گزارش رو بر مبنای همین کوئری میسازیم و کدهای لازم رو هم اضافه میکنیم:

    Private Sub Report_Open(Cancel As Integer)
    DoCmd.SetWarnings False
    XX = 0
    DoCmd.RunSQL ("SELECT mark1,RX([code]) AS ID INTO g10 FROM data WHERE code In ('11','12','13')")
    XX = 0
    DoCmd.RunSQL ("SELECT mark2,RX([code]) AS ID INTO g100 FROM data WHERE code In ('150','300')")
    End Sub

    rep.PNG

  7. #7
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: جمع دو ستون از یک جدول دارای شرط بدون فیلد کلید

    دیتابیس نمونه
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. پاسخ: 2
    آخرین پست: جمعه 02 مهر 1395, 21:52 عصر
  2. مرتب سازی دو ستون از جدول یک ستون صعودی و یک ستون نزولی
    نوشته شده توسط سمیرا55 در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: شنبه 26 دی 1394, 15:46 عصر
  3. ایجاد ستونی از جنس user control برای ستونی از data grid view
    نوشته شده توسط rezvanbaztab در بخش C#‎‎
    پاسخ: 0
    آخرین پست: سه شنبه 31 اردیبهشت 1392, 13:49 عصر
  4. پاسخ: 4
    آخرین پست: شنبه 31 فروردین 1392, 12:09 عصر
  5. پاسخ: 1
    آخرین پست: یک شنبه 11 اردیبهشت 1390, 07:42 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •