View Full Version : جایگزینی مقدار کوئری در نمایش
salam007
دوشنبه 16 مرداد 1391, 13:48 عصر
سلام دوستان
این کد برنامه ما است
1
select id_prodotto,id_fase,id_supporto , COUNT(*) as record from piazze group by id_prodotto,id_fase,id_supporto
ریلیشن جداول من بصورت زیر است که جدول اصلی سمت راست است و از آن کوئری گرفته میشود.
http://barnamenevis.org/attachment.php?attachmentid=90864&d=1344240650
وهمچنین خروجی کوئری من در زیر است که میخاستم به جای اعداد معادل اسمی آنها از سه جدول سمت چپ که یک ستون منتخب در هر کدام است در نتیجه قرار بگیرد .
http://barnamenevis.org/attachment.php?attachmentid=90865&d=1344240905
من میخام در نمایش گزارشم بجای مقادیر موجود در سه ستون اول از سمت چپ که به صورت شناسه هستند معادل آنها را از جداول خودشان که 3 تا هستند و به جدول اصلی من ریلیشن شده اند به کاربر نمایش بدم .چه کار باید بکنم .
سعید صابری
دوشنبه 16 مرداد 1391, 14:59 عصر
از case استفاده کن البته در کوئری
CASE ("column_name")
WHEN "0" THEN "result1"
WHEN "1" THEN "result2"
end
http://msdn.microsoft.com/en-us/library/ms181765.aspx
salam007
دوشنبه 16 مرداد 1391, 18:25 عصر
ممنون اما موقع اجرا خطای زیر رو میده
invalid SQL statement expected 'DELETE','INSERT','PROCeDURE','SELECT',or UPDATE
و همچنین اگه متوجه شده باشین من باید اطلاعات را از جداول دیگه بخونم نه اینکه بگم اگه 0 بود این مقدار و .... برای این یک راه حلی میخاستم
سعید صابری
دوشنبه 16 مرداد 1391, 21:05 عصر
به جای عدد NAMEFIELD نام فیلد بنویس
salam007
دوشنبه 16 مرداد 1391, 21:23 عصر
به جای عدد 0 نام فیلد بنویس
آقا سعید تورو خدا خواهشا اگه جواب میدین واضح جواب بدین
آخه بجای 0 من اسم چه فیلدی رو بنویسم از کدوم جدول و به چه نحو باید ارجاش بدم ؟
result که مقابل 0 هست چی باید قرار بگیره ؟
در ضمن این دستور case که نوشتین فقط واسه یک ستون است ؟
سعید صابری
دوشنبه 16 مرداد 1391, 22:54 عصر
ببخشید حواسم نبود
ببینید دستور CASE که می دونید چیکار می کنه یک لینک هم براتون گذاشتم توضیحات کامل بود
برای مثال فیلد SEX به عدد 1 به جای مرد و 2 به جای زن
SELECT CASE (SEX)
WHEN "0" THEN "مرد"
WHEN "1" THEN "زن"
END ,....
در ضمن این دستور case که نوشتین فقط واسه یک ستون است ؟
میتوانید برای تمامی فیلدها تکرار کنید
کامروا
سه شنبه 17 مرداد 1391, 00:06 صبح
اگر اشتباه نکنم با این کد کارتون راه میفته :
SELECT name_proddoto,Name_Fase,Name_Supporto,COUNT(*) AS Record
FROM
piazze
INNER JOIN fasi
ON (fasi.ID_Fase = piazze.ID_Fase)
INNER JOIN proddoti
ON (proddoti.id_proddoto = piazze.id_proddoto)
INNER JOIN supporti
ON (supporti.ID_Supporto = piazze.ID_Supporto);
البته این جدول ها رو همینحوری درست کردم و نام فیلد هاش تا حدودی فرق میکنه با جداول شما. پس فیلدها رو با جداول خودتون تطبیق بدین.
اینم عکس از جداول :
http://www.jdaneshju.com/up/images/2u3z4m1aq5tw16l9nwp9.jpg
موفق باشید
salam007
سه شنبه 17 مرداد 1391, 18:29 عصر
ممنون کامروا جان ، به نظر میاد درست است . تست میکنم خبرشو میدم .مرسی بازم و به امید ظهور آقا امام زمان
salam007
سه شنبه 17 مرداد 1391, 19:04 عصر
این ارور رو میده
90912
کامروا
پنج شنبه 26 مرداد 1391, 12:11 عصر
این ارور رو میده
90912
خب بایدم ارور بده !
گفتم که باید فیلد ها رو نسبت به جدول خودتون تغییر بدید.
الان همچین فیلد هایی توی جداول شما وجود نداره....
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.