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

نام تاپیک: Sql Syntax فوری.

  1. #1

    Sql Syntax فوری.

    من دو جدول دارم که هردو دارای فیلدی بنام maqsad هستند و در کل نهایتا دو مقصد تهران و شیراز در دو جدول وارد میشه . حالا من این دو جدول را با هم join میکنم روی همین فیلد maqsad برای گروه بندی و ....
    مشکل من اینه که اگر در دو جدول در فیلد maqsad برای هر دو شهر حدقل یک رکورد برای هرکدام ثبت شده باشد این join جواب میده و الا مثلا اگر برای جدول 1 شهر تهران ثبت شده باشد و برای جدول 2 شهر تهران و شیراز ثبت شده باشد در اینصورت وقتی من این join را انجام میدم که مثلا تعداد ماشینهای رفته شده به هر شهر را بدست بیارم ( گروه بندی ) اینجوری تعداد ماشینهای رفته شده به شیراز از جدول دو در نتیجه query نشان داده نمیشود.
    در ضمن من نمیتوتم دو جدول رو یکی کنم و از AdoDataset و sql server استفاده میکنم. من از این join استفاده میکنم :

    select ......... from table1 full outer join table2 on table1.city=table2.city

    لطفا راهنمایی کامل با syntax

  2. #2
    دوست عزیزم لطفا این اطلاعات رو کامل کنید تا جواب قابل استفاده ای بشه داد:
    1) جدول 1 و جدول 2 هر کدوم باید چه رکوردهایی (با چه هدفی) داشته باشن
    2) Query شما دقیقا قراره چه گزارشی تامین کنه (صورت اصلی مساله)

    چون معمولا احتمال این مشکل وجود داره که طراحی جداول مناسب نباشه و این منجر میشه به غیر انعطاف پذیر بودن سیستم برای تهیه گزارش.
    ولی پیش فرض اینه که من سیستم شما رو نمیشناسم، نه اینکه طراحی شما اشکال داره (سوء تفاهم نشه!)

    موفق باشین

  3. #3
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229
    یک جدول را بیس قرار دهید و از left joine یا right joine استفاده کنید

  4. #4
    من دو نوع ماشین ثبت میکنم در 2جدول که یکی کامیون ( چند تن و مقدار بار نوع و... ) و دیگری اتوبوس(ظرفیت و تعداد مسافر و..) هست و برای گزارشگیری ماهانه یا سالانه باید تعداد ماشینهای رفته شده به دو مقصد بدست بیاد. امین جان query من در موردی که در هر 2 جدول هر دو شهر ثبت شده باشه جواب میده ولی وقتی 1 شهر تو یکی ثبت هست موقع گزارشگیری در صورتی محاسبه میشه که در جدول مقابل هم این شهر ثبت باشه :|

    select distinct l.maqsad,l.gmal,l.mal,count(distinct l.mosalsal) as Tir,sum(distinct l.mmal) as Ton,count(distinct b.mosalsal) as Tot_m from javazL AS l full outer join javazb AS b on l.maqsad=b.maqsad where l.year = '+edit1.Text+' and b.year = '+edit1.Text;
    group by l.gmal,l.maqsad,l.mal order by gmal

  5. #5
    1) علت اینکه سفرهای رفته شده رو در 2 جدول جدا ثبت میکنین چیه؟
    2) Distinct در اینجا چه وظیفه ای داره؟
    اگر درست متوجه شده باشم اینجا 4 جدول نقش دارن: 2 جدول برای دو نوع ماشین و دو جدول برای 2 مقصد؟
    اگر بتونین Script ساخت جداول رو اینجا بگذارین تا دقیقتر از ساختار اونها با خبر بشیم کمک بزرگی در پیدا کردن راه حل انجام دادین. متاسفانه ما از وسط کار به شما ملحق شدیم و اطلاعاتمون در مورد سناریو خیلی کمه!

  6. #6
    distinctطرهای تکراری رو خذف میکنه
    چون فیلدهای مختلف دارن در 2 جئول ثبت میشه
    اینجا فقط 2 جدول نقش دارن.

  7. #7
    نجیب عزیز،
    چون اطلاعات شمارش (Count) رو از دو جدول باید استخراج کنین، به این صورت عمل کنین. اول یک Query برای شمارش سفرها از جدول 1:

    select city,count(city) as 'tedad' from table1 group by city

    بعد شمارش از جدول دوم:

    select city,count(city) from table2 group by city

    حالا نتیجه این دو Query رو یکی میکنیم:

    select city,count(city) as 'tedad' from table1 group by city
    union all
    select city,count(city) from table2 group by city

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

    select city, sum(tedad) from
    (select city,count(city) as 'tedad' from table1 group by city
    union all
    select city,count(city) from table2 group by city) as tmp
    group by city

    این Query فقط مجموع مسافرتهای انجام شده رو برمیگردونه. من به نظرم میرسه در Query که شما نوشته بودین، دارین چند تا کار رو همزمان انجام میدین و شاید این نتیجه مورد نظرتون رو تامین نمیکرده.
    ضمنا فیلد City در مثال من، مترادف مقصد در جداول شماست.
    موفق باشید

  8. #8
    مرسی امین جان..... ممنون :flower:

  9. #9
    موفق باشین

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

  1. اشکال syntax ای
    نوشته شده توسط fatemeh rahimi در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: یک شنبه 04 آذر 1386, 12:14 عصر
  2. syntax
    نوشته شده توسط prince-of-persia در بخش VB.NET
    پاسخ: 1
    آخرین پست: یک شنبه 07 مرداد 1386, 13:03 عصر
  3. منظور از این syntax چیست؟
    نوشته شده توسط ravanfar در بخش برنامه نویسی با Borland C++‎ Builder
    پاسخ: 3
    آخرین پست: یک شنبه 22 مرداد 1385, 21:27 عصر
  4. پیام خطا در SQL syntax
    نوشته شده توسط ParvanehDesigner در بخش PHP
    پاسخ: 0
    آخرین پست: سه شنبه 05 اردیبهشت 1385, 23:08 عصر
  5. Sql Syntax فوری.
    نوشته شده توسط najeeb در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: چهارشنبه 08 مهر 1383, 02:32 صبح

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

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