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

نام تاپیک: درخواست کمک جهت تبدیل عبارت اس کیو ال

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

    Question درخواست کمک جهت تبدیل عبارت اس کیو ال

    با سلام خدمت دوستان
    احتراما من مشکلی دارم که نتوانستم تا راه حلی برای آن پیدا نمایم . امیدوارم شما مشکل مرا در این رابطه حل نمائید.
    اما اصل موضوع:
    من دو جدول دارم که اولی را بر اساس کد گروه بندی و بر اساس مبلغ جمع میشود. سپس نتیجه در جدول دوم در حقیقت خلاصه شده جدول اول است ثبت میشود. من از طریق دستور insert into این عمل را به درستی انجام میدهم که کد آن در زیر نمایش داده شده است. اما بنا به دلایلی میخواهم به جای دستور insert into از دستور update استفاده نمایم. حال باید این دستور طوری نوشته شود که اولامبالغ جدول اولی را جمع بندی بر اساس کد نموده و نتیجه به جدول دوم که در آن کد قبلا درج شده است وارد شود. متشکرم


          cmdImportData.CommandText :='INSERT INTO tblGardeshSal(CodProject,Mablagh02,Tedad02)'+


    ' SELECT '+strStartSal+'.CodProject, Sum('+strStartSal+'.Mablagh)AS Mablagh, Count('+strStartSal+'.CodProject) AS Tedad'+

    ' FROM '+ strStartSal+


    ' GROUP BY '+strStartSal+'.CodProject'+


    ' ORDER BY '+strStartSal+'.CodProject';


  2. #2

    نقل قول: درخواست کمک جهت تبدیل عبارت اس کیو ال

    شک دارم که منظورتون رو درست فهمیده باشم. شما میخواید داده هایی رو از جدول ویرایش کنید بطوری که اطلاعات وابسته به آن (جمع مبلغ و .... ) بروز بشه. اگه اینه query زیر رو امتحان کنید:



    UPDATE tblgardeshsal SET codproject='+temp1+' , mablagh='+temp2+' , tedad='+temp3+' WHERE codproject='+temp4+';

    create temporary table groups (SELECT tblgardeshsal.codproject , SUM(tblgardeshsal.mablagh) as mablagh, count(tblgardeshsal.codeproject) as tedad From tblgardeshsal );

    UPDATE strStartSal SET codproject='+temp1+' , mablagh=groups.mablagh , tedad=groups.tedad where codproject='+temp4+';

    and finally

    drop table groups;


    کد بالا عینا" به کار شما نمیاد اما روشش جواب میده. یعنی از اونجا که در دستور update نمیشه از group function ها استفاده کرد، بهتره داده های این توابع رو اول توی یه جدول temporary بریزی و بعد ازشون واسه Update جدول دوم استفاده کنی

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

    Question نقل قول: درخواست کمک جهت تبدیل عبارت اس کیو ال

    با سلام خدمت دوستان
    من تا اینجا توانستم کد مورد نظر را به شکل عبارت زیر تبدیل نمایم .
          cmdImportData.CommandText :='UPDATE tblGardeshSal Set tblGardeshSal.Mablagh01=(SELECT sum(tblTax8801.Mablagh) From tblTax8801 '+
    'WHERE tblTax8801.CodProject=tblGardeshSal.CodProject)'+
    'WHERE EXISTS (SELECT sum(tblTax8801.Mablagh) FROM tblTax8801 WHERE tblTax8801.CodProject=tblGardeshSal.CodProject '+
    'GROUP BY tblTax8801.CodProject '+
    'ORDER BY tblTax8801.CodProject )';
    اما خطای زیر داده میشه . کسی میدونه علت این خطا چیست؟ متشکرم
    operation must use an updateable query

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

    نقل قول: درخواست کمک جهت تبدیل عبارت اس کیو ال

    دوست خوبم بعد از سلام باید به عرض برسونم اگه لطف کنید در تاپیک ها فقط شبه کد
    SQL بنویسید زودتر به نتیجه میرسین و بقیه دوستان هم زودتر میتونن از کد شما سردربیارن
    چون که ذهنیتی که شما نسبت به کدنویسی خودتون دارین با ذهنیت بقیه فرق داره!!
    وبد ازاینکه از دید کد SQl به نتیجه رسیدید اون موقه اون کدا در برنامتون استفاده کنید.

    موفق و موید باشید.-شهریاری

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

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