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

نام تاپیک: چندین SELECT در یک Query

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    170

    Question چندین SELECT در یک Query

    سلام
    من برای طراحی داشبورد نرم افزارم صفحه ای دارم که در آن چندین گراف وجود دارد. من برای هر گراف یک TADOQUERY روی فرم گذاشته ام. آیا این امکان وجود دارد که همه SELECT را در یک کوئری بنویسم (مثل SQL Server که با دستور GO از هم جدا میکنیم)
    SELECT FullName,COUNT(*)CNT
    FROM tblSF03Log A INNER JOIN tblUsersLogin B ON A.OperatorID=B.ID
    WHERE DATEPART(YEAR,DT)=DATEPART(YEAR,SYSDATETIME())
    GROUP BY FullName

    go
    Declare @tmp real
    SET @tmp=(100.0/(SELECT COUNT(*) FROM vwSF03Log WHERE (CostFilled=1 OR QCManOk=1)and DATEPART(YEAR,DT)=DATEPART(YEAR,SYSDATETIME())))
    SELECT B.Name,(SUM(ValidWaste)*@tmp)ValidWasteCNT,(SUM(In validWaste)*@tmp)InvalidWasteCNT
    FROM vwSF03Log A
    INNER JOIN tblFactors B ON A.WasteFactor=B.Id
    WHERE CostFilled=1 and DATEPART(YEAR,DT)=DATEPART(YEAR,SYSDATETIME())
    GROUP BY B.Name

    go
    SELECT B.FullName,(A.ValidWasteCNT*100.0/C.CNT)ValidWasteCNT,(A.InvalidWasteCNT*100.0/C.CNT)InvalidWasteCNT
    FROM(
    SELECT OperatorID,SUM(ValidWaste)ValidWasteCNT,SUM(Invali dWaste) InvalidWasteCNT
    FROM vwSF03Log
    WHERE WasteFactor is not null and Cost is not null and DATEPART(YEAR,DT)=DATEPART(YEAR,SYSDATETIME())
    GROUP BY OperatorID
    )A
    INNER JOIN tblUsersLogin B ON A.OperatorID=B.Id
    INNER JOIN (
    SELECT OperatorID,COUNT(*) CNT
    FROM vwSF03Log
    WHERE ((WasteFactor is not null and Cost is not null)or(QCManOk=1))and DATEPART(YEAR,DT)=DATEPART(YEAR,SYSDATETIME())
    GROUP BY OperatorID) C ON A.OperatorID=C.OperatorID

    go
    SELECT B.Name as Model,(A.ValidWasteCNT*100.0/C.CNT)ValidWasteCNT,(A.InvalidWasteCNT*100.0/C.CNT)InvalidWasteCNT
    FROM(
    SELECT ModelIranCode,SUM(ValidWaste)ValidWasteCNT,SUM(Inv alidWaste) InvalidWasteCNT
    FROM vwSF03Log
    WHERE CostFilled=1 and DATEPART(YEAR,DT)=DATEPART(YEAR,SYSDATETIME())
    GROUP BY ModelIranCode
    )A
    INNER JOIN tblSubProductTypes B ON A.ModelIranCode=B.Id
    INNER JOIN (
    SELECT ModelIranCode,COUNT(*) CNT
    FROM vwSF03Log
    WHERE ((WasteFactor is not null and Cost is not null)or(QCManOk=1))and DATEPART(YEAR,DT)=DATEPART(YEAR,SYSDATETIME())
    GROUP BY ModelIranCode
    ) C ON A.ModelIranCode=C.ModelIranCode

    go
    SELECT B.Name as Model,COUNT(*)CNT
    FROM vwSF03Log A
    INNER JOIN tblSubProductTypes B ON A.ModelIranCode=B.Id
    WHERE DATEPART(YEAR,DT)=DATEPART(YEAR,SYSDATETIME())
    GROUP BY B.Name

    go
    SELECT B.Name as Organ,COUNT(*)CNT
    FROM vwSF03Log A
    INNER JOIN tblFactors B ON A.WasteFactor=B.Id
    WHERE ((CostFilled=1)or(QCManOk=1))and DATEPART(YEAR,DT)=DATEPART(YEAR,SYSDATETIME())
    GROUP BY B.Name

  2. #2

    نقل قول: چندین SELECT در یک Query

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

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


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

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    170

    نقل قول: چندین SELECT در یک Query


    متشکرم
    (دکمه تشکر کردن کجا رفته؟)

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    170

    نقل قول: چندین SELECT در یک Query

    به نظر شما اگر حجم دیتای برگشتی بالا باشه و من روی فرمم به ازای هر DBGrid یک ADOQuery بگذارم سرعت کارم بهتر میشه یا اینکه یک ADOQuery بگذارم که توی SQL اش همین کد بالا را بگذارم و به ازای هر DBGrid یک ADODataset بگذارم و با ADODataSet1.Recordset:= ADOQuery1.NextRecordset(i) آن را پر کنم؟

  5. #5

    نقل قول: چندین SELECT در یک Query

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

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


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

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

  1. اشکال در query مربوط به select از چند جدول ؟
    نوشته شده توسط Fartaj در بخش T-SQL
    پاسخ: 1
    آخرین پست: چهارشنبه 30 مرداد 1392, 18:17 عصر
  2. حرفه ای: select query
    نوشته شده توسط Ali_M_K در بخش C#‎‎
    پاسخ: 0
    آخرین پست: چهارشنبه 28 مهر 1389, 01:02 صبح
  3. select query with like
    نوشته شده توسط Easy_Systems در بخش VB.NET
    پاسخ: 2
    آخرین پست: دوشنبه 01 بهمن 1386, 22:38 عصر
  4. Select Query برای دو جدول
    نوشته شده توسط saeghe3000 در بخش Access
    پاسخ: 1
    آخرین پست: دوشنبه 01 مرداد 1386, 06:25 صبح

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

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