PDA

View Full Version : تجمیع چند رکوردد در یک رکورد!



bad_lucky
پنج شنبه 17 بهمن 1392, 09:01 صبح
با سلام خدمت دوستان عزیز

لطفا به عکس زیر توجه فرمایید

یه جدول هست با ایدی های یکسان و اطلاعات متفاوت چجوری میشه این رکوردها رو در یک رکورد تجمیع کرد با تشکر .

starting
پنج شنبه 17 بهمن 1392, 09:35 صبح
با GROUP BY بر اساس ستون serial گروه بندی می کنید و نام این ستون را در جلوی SELECT قرار می دین. سپس سایر ستون ها را به عنوان پارامتر ورودی در یکی از توابع تجمیع به دلخواه قرار می دهید. فرقی هم نمی کند که از چه تابع تجمیع استفاده کنید به این خاطر که در هر ستون تنها یک مقدار غیر Null یکتا است.

bad_lucky
پنج شنبه 17 بهمن 1392, 10:09 صبح
با GROUP BY بر اساس ستون serial گروه بندی می کنید و نام این ستون را در جلوی SELECT قرار می دین. سپس سایر ستون ها را به عنوان پارامتر ورودی در یکی از توابع تجمیع به دلخواه قرار می دهید. فرقی هم نمی کند که از چه تابع تجمیع استفاده کنید به این خاطر که در هر ستون تنها یک مقدار غیر Null یکتا است.

مرسی از پاسختون .ولی من تقریبا هیچی متوجه نشدم !
در ضمن تو بعضی از رکوردها (مثلا فیلد آدرس در هر دو رکورد پر هست و داده های غیر یکسان دارند)

starting
پنج شنبه 17 بهمن 1392, 10:46 صبح
ای بابا، مگه با زبان SQL نمی خواهید این عمل تجمیع را انجام دهید؟

در ضمن تو بعضی از رکوردها (مثلا فیلد آدرس در هر دو رکورد پر هست و داده های غیر یکسان دارند)
خب، نقشه اتان برای این حالت چیست؟ بالاخره باید یکی از این دو آدرس انتخاب بشه دیگه، یا نه می خواهید هر دو آدرس هم داشته باشید؟

bad_lucky
پنج شنبه 17 بهمن 1392, 10:56 صبح
ای بابا، مگه با زبان SQL نمی خواهید این عمل تجمیع را انجام دهید؟

خب، نقشه اتان برای این حالت چیست؟ بالاخره باید یکی از این دو آدرس انتخاب بشه دیگه، یا نه می خواهید هر دو آدرس هم داشته باشید؟
یکی از این دو انتخاب بشه خوبه
در ضمن این ناهماهنگی در فیلد ها (مثل آدرس و نام و تلفن ) بخاطر این هست که مشتری در زمانهای متفاوت اطلاعاتش خودش رو ارائه کرده.

starting
پنج شنبه 17 بهمن 1392, 13:10 عصر
با یه هم چین چیزی مشکلتون حل میشه:


SELECT serial, MIN(Name), MIN(Falily), ... , MIN(address)
FROM table_name
GROUP BY serial;