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

نام تاپیک: تعیین نوع فیلد در query

  1. #1

    تعیین نوع فیلد در query

    سلام
    تو کوئری زیر فیلد های f1 و f2 از نوع float هستن تا اینجا درسته اما وقتی رو query فیلد هامو اضافه میکنم یعنی همون Fields Editor و add all fields دیگه حال بحالی میشه بعضی وقت ها خوبه تا یک دفعه ارور میده که باید مجدد فیلد total پاک و دوباره اضافه کنم.البته بیشتر وقتی اینطوری میشه که اطلاعات فیلد خالی بشه.خواهش میکنم راهنمائی کنید خیلی گیرم.
    بانکم sqlite هست و از کامپوننت fdquery از مجموعه firedac استفاده میکنم.

    select  a.ID,(Select IFNULL(SUM(b.f1) - SUM(b.f2),0) From table1 b) as Total
    From table1 a



    متن ارور

    fdquery1:Type mismatch for field 'Total',expecting: Float actual:LargeInt.

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    ایران تهران
    پست
    608

    نقل قول: تعیین نوع فیلد در query

    شاید با تابع cast مشکلت حل شه

    cast( sum(a) as float)

  3. #3

    نقل قول: تعیین نوع فیلد در query

    SUM(b.f1) - SUM(b.f2)
    درست نیست که هر دو رو با هم در تابع نال بگذارید. باید هر کدوم رو جداجدا بگذارید.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  4. #4

    نقل قول: تعیین نوع فیلد در query

    از cast استفاده کردم این بار متن ارور این شد:

    fdquery1:Type mismatch for field 'Total',expecting: Float actual:WideString

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

  5. #5

    نقل قول: تعیین نوع فیلد در query

    من برای ارور نگفتم؛ کلی بود. برای اصلاح ارور باید یک بار فیلد ها رو پاک کرده دوباره اد کنید.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  6. #6

    نقل قول: تعیین نوع فیلد در query

    بله متوجه شدم , مشکل همینه وقتی پاک میکنم و دوباره اد, درست میشه ولی دوباره که فیلد خالی میشه باز همون ارور میده.

  7. #7

    نقل قول: تعیین نوع فیلد در query

    به جای اینکه sub-query را در قسمت Projection قرار بدین بیارش در قسمت FROM تا عمل ضرب دکارتی صورت بگیره. احتمالا با Performance بهتری هم مواجه خواهید شد:
    select  a.ID, b.total 
    From table1 a, (Select IFNULL(SUM(b.f1), 0) - IFNULL(SUM(b.f2),0) as Total From table1 as b) b

  8. #8

    نقل قول: تعیین نوع فیلد در query

    به جای اینکه sub-query را در قسمت Projection قرار بدین بیارش در قسمت FROM تا عمل ضرب دکارتی صورت بگیره.
    همیشه درست نیست.
    در صورتی که جدول دارای فیلدهای زیادی باشه و ما فقط یکی دو تاش رو لازم داشته باشیم، عمل ضرب بیشتر طول می کشه، راه بهتر زیاد داره ولی همیشه یک نسخه واحد نداره.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  9. #9

    نقل قول: تعیین نوع فیلد در query

    اصلا یه کار دیگه میشه کرد. قرار هست یک مقدار ثابت در یک فیلدی به نام Total برای تمام سطرهای جدول نشون داده بشه دیگه.
    میشه ابتدا نتیجه را داخل یک متغیر بریزیم سپس از نام اون متغیر در کوئری استفاده کنیم.

    به این صورت:
    declare @total float = 0;
    set @total = (Select IFNULL(SUM(f1), 0) - IFNULL(SUM(f2),0) From table1);

    select ID, @total as total
    From table1;


    فقط برای اینکه نتیجه صحیح را صد در صد تضمین شده ارائه بدین باید اجازه تغییر داده ها بین دو عمل انتساب و کوئری دوم را از کاربر توسط قفل گذاری جدول بگیرین.

    بنظرتون اینکار چطوره؟

  10. #10

    نقل قول: تعیین نوع فیلد در query

    با همین کار مشکل حل شد مرسی

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

  1. تعیین نوع فیلد برای ذخیره مقادیر داخل Maskedit
    نوشته شده توسط pop123 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 17
    آخرین پست: یک شنبه 20 شهریور 1390, 12:22 عصر
  2. سوال: کمک در مورد تعیین نوع فیلد
    نوشته شده توسط oliya24 در بخش SQL Server
    پاسخ: 2
    آخرین پست: شنبه 27 آذر 1389, 07:46 صبح
  3. سوال: تعیین عرض یک فیلد در Query
    نوشته شده توسط Knophler در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: چهارشنبه 20 آذر 1387, 20:34 عصر
  4. گفتگو و سوال : تعیین نوع یک فیلد بانک SQL
    نوشته شده توسط Pr0grammer در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 11
    آخرین پست: شنبه 11 آبان 1387, 11:32 صبح
  5. تعیین نوع فیلد در اوراکل
    نوشته شده توسط nkhozooii در بخش Oracle
    پاسخ: 1
    آخرین پست: چهارشنبه 12 اردیبهشت 1386, 09:32 صبح

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

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