View Full Version : اجرای همزمان دو دستور
maryam_jamshid
شنبه 12 آبان 1386, 12:48 عصر
من یه view دارم که از یه جدول استفاده میکنه،با چه دستوری میشه جدول را بر اساس تاریخ فیلتر کرد و همزمان داده های view رو که از جدول فیلتر شده میخونه نمایش داد.
یعنی اجرای همزمان دو دستور ،طوری که از خروجی دستور 1 در دستور 2 استفاده شود
hamed_bostan
شنبه 12 آبان 1386, 12:57 عصر
خوب select تو در تو بده مشکل کجاست !!!
maryam_jamshid
شنبه 12 آبان 1386, 13:19 عصر
ببینید کدهاش به صورت زیر است:
( select tarekh from informationestudent where tarekh='1385/10/15') دستور اول
SELECT COUNT(dbo.informationestudent.noereshte) دستور دوم
FROM informationestudent INNER JOIN
elatemoraje ON dbo.informationestudent.code = dbo.elatemoraje.code
WHERE (elatemoraje.ekhtelal = 'True') AND (informationestudent.noereshte = 'انسانی')
میخوام اول دستور یک اجرا بشه و بعد دستور دوم .
چون همانطور که مشاهده می کنید توی دستور دوم از جدول informationestudent هم استفاده می کنه که من میخوام از فیلتر شدش استفاده کنه؟؟؟؟؟؟؟
ardavan
شنبه 12 آبان 1386, 14:50 عصر
SELECT COUNT(dbo.informationestudent.noereshte)
FROM informationestudent INNER JOIN
elatemoraje ON dbo.informationestudent.code = dbo.elatemoraje.code
WHERE (elatemoraje.ekhtelal = 'True') AND (informationestudent.noereshte) and (tarekh in (select tarekh from informationestudent where tarekh='1385/10/15'))
اینجوری ولی کار بیهوده است زیرا در performance تاثیر منفی دارد.
maryam_jamshid
شنبه 12 آبان 1386, 18:50 عصر
من میخوام دستور اول جداگانه اجرا بشه بعد دستور دوم .
میشه جداگانه انجام داد؟؟
یعنی جداگانه اجرا کرد اما همچنان دستور دوم وابسته به اولی باشه؟؟؟
hamed_bostan
شنبه 12 آبان 1386, 19:28 عصر
دوست من شما یه کاری بکن و اون اینکه واسه هر select یه View جدا گانه بساز و یا view روی view بگیر . همیشه یه چیز یادت باشه اگه پله پله بری جلو کار رو بشکنی خیلی کارت ساده تر میشه . بعدا هر جایی رو که دطدی میتونی تلفیق کنی تلفیق کن و پرفرمنس کارت رو ببر بالا.
موفق باشی
maryam_jamshid
شنبه 12 آبان 1386, 22:15 عصر
ببینید من دستور اول را در یه view گذاشتم به نام test1:
SELECT *
FROM dbo.informationestudent
-----
بعد دومی رو توی view دیگه گذاشتم به نام test2:
SELECT COUNT(code) AS tedadashkhas,
(SELECT COUNT(dbo.test1.noereshte)
FROM dbo.test1 INNER JOIN
dbo.elatemoraje ON dbo.test1.code = dbo.elatemoraje.code
WHERE (dbo.elatemoraje.ekhtelal = 'True') AND (dbo.test1.noereshte = 'انسانی') AS tedadeolompaye
FROM dbo.test1
---
بعد من این دوتا view رو توی گذارشگیری add کردم و زمانی که پارامتر تاریخ رو با مقدار مورد نظر برای فرم گزارشگیری می فرستم تعداد کل رو بدون در نظر گرفتن مقدار تاریخ نشون میده.
یعنی test2 از test1 بدون فیلتر استفاده میکنه.
maryam_jamshid
یک شنبه 13 آبان 1386, 07:44 صبح
جداول رو براتون فرستادم.
میخوام تعدادرکوردهایی که فیلد اختلال اونها True وفیلد رشته اونها 'انسانی' نمایش بده،و فیلدتاریخ رو هم در نظر بگیره ، یعنی با فرستاده مقداری خاص برای تاریخ مقادیر تغییر کنه؟؟
لطفا کدی که فکر میکنید این مشکل رو حل کنه بنویسید.
با تشکر
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.