آموزش SQL Server 2008 (بررسی سوالات و اشکالات مربوطه)

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام
یه سوالی داشتم ممنون میشم اگه پاسخ بدین . من خودم مدت زیادیه که با SQL کار میکنم ولی توی یه پروژه به یه مشکل برخورد کردم ..................... مسئله اینه که یکی از مقادیر فرض کنین ستون account برای یه مشتری باید update بشه مثلا به ازای خرید یه جنس باید از حساب مشتری کم بشه ولی موضوع اینجا است که قیمت این جنس داخل یه table دیگه است و هیچ راهی برای آوردن اون قیمت نیست حتی من یه query نوشتم و فراخوانی کردم ولی فراخوانی جواب نمیده . و از طرفی نمی خوام به فرمت table هام دست بزنم به نظرتون راه حلی وجود داره؟

اگر فیلدت اینجور که من متوجه شدم محاسباتی باشه، یا میتونی از تریگر استفاده کنی یا کلاً یک تابع بنویسی و بجای ذخیره آن و هر باز به روزرسانی که به نظر من درست نیست، از تابع در select استفاده کنی و مقدار را بدست بیاری :gol:
 

naimi ali

عضو جدید
سلام من یک پایگاه داده دارم که چند سوال هستش که من تووی این سوال ها یه مقدار گیر دارم ممنون می شم اگه به من کمک کنید:

company(id,title,addres)
costumer(id,code,firstname,lastname,tell,address)
(فاکتور) invoice(id.costumer_id,code,date)
(جزئیات فاکتور) invoice detalis(id,invoice_id,product_id,quantity)
phone(id,company_id,phonetype,number)
nemidoonam chera number tarif karde vase jadvale phon????
1
فهرست محصولات فروخته شده به هر مشتری؟
2
2 محصول پر فروش اول را مشخص کنید؟
3
هر مشتری از هر کالا چه تعداد خرید کرده است؟
balayi bayad ba croos join hal beshe...
4
نام کالاهایی که توسط هیچ مشتری خریداری نشده است؟
5
نام و شماره تماس شرکت هایی که محصول (A) را تولید می کنند؟
be tartib horoofe alefba namayesh dade shavad dar khorooji
6
کدام شرکت ها بالاترین تعداد فروش دا در کل محشولاتشان داشته اند؟
7
ماکسیمم و مینیمم قیمت فروش (A) مربوط به کدام شرکت است؟
balatarin va payin tarin gheymate foroosh namayesh dade shavad...
8
در مجموع چه تعدادی از محصول (A) توسط هر شرکت تولید کننده ی آن به فروش رفته است؟

man az ooonjayi ke 3 ja;lase poshte sare ham sare kelas nabooodam nemitooonam in soal haro pasokh bedam mamnooon misham age behem komak konid mer30 az inke daste ma daneshjooo haro migirid...
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام من یک پایگاه داده دارم که چند سوال هستش که من تووی این سوال ها یه مقدار گیر دارم ممنون می شم اگه به من کمک کنید:

company(id,title,addres)
costumer(id,code,firstname,lastname,tell,address)
(فاکتور) invoice(id.costumer_id,code,date)
(جزئیات فاکتور) invoice detalis(id,invoice_id,product_id,quantity)
phone(id,company_id,phonetype,number)
nemidoonam chera number tarif karde vase jadvale phon????
1
فهرست محصولات فروخته شده به هر مشتری؟
2
2 محصول پر فروش اول را مشخص کنید؟
3
هر مشتری از هر کالا چه تعداد خرید کرده است؟
balayi bayad ba croos join hal beshe...
4
نام کالاهایی که توسط هیچ مشتری خریداری نشده است؟
5
نام و شماره تماس شرکت هایی که محصول (A) را تولید می کنند؟
be tartib horoofe alefba namayesh dade shavad dar khorooji
6
کدام شرکت ها بالاترین تعداد فروش دا در کل محشولاتشان داشته اند؟
7
ماکسیمم و مینیمم قیمت فروش (A) مربوط به کدام شرکت است؟
balatarin va payin tarin gheymate foroosh namayesh dade shavad...
8
در مجموع چه تعدادی از محصول (A) توسط هر شرکت تولید کننده ی آن به فروش رفته است؟

man az ooonjayi ke 3 ja;lase poshte sare ham sare kelas nabooodam nemitooonam in soal haro pasokh bedam mamnooon misham age behem komak konid mer30 az inke daste ma daneshjooo haro migirid...

دوست عزیز لطفاً فارسی تايپ کنید.
1.
کد:
select *
from invoice inner join invoice_details on invoice.id=invoice_details.invoice_id
inner join product on invoice_details.product_id=product.id
where invoice.customer_id=@id -- id of customer that pass to the query

2.
کد:
select top 1 sum(quantity) as total,productTitle
from invoice_details inner join product on product.id=invoice_details.product_id
group by productTitle
order by sum(quantity) desc

3.
کد:
select sum(quantity) as Total, productTitle, Customer.firstname,customer.lastname
from invoice inner join invoice_details on invoice.id=invoice_details.invoice_id
inner join product on invoice_details.product_id=product.id
group by productTitle, Customer.firstname,customer.lastname

4.
کد:
select productTitle
from product
where id not in (select distinct product_id
from invoice_details)

5.جدولی باید باشد که شرکت را به محصولات متصل کند تا بتوان این کوئری را نوشت.
6 به بعد : جداول کامل نیست.
 

salome

عضو جدید
اگر فیلدت اینجور که من متوجه شدم محاسباتی باشه، یا میتونی از تریگر استفاده کنی یا کلاً یک تابع بنویسی و بجای ذخیره آن و هر باز به روزرسانی که به نظر من درست نیست، از تابع در select استفاده کنی و مقدار را بدست بیاری :gol:

ممنون از پاسختون ..................... خوب اگه این جوری که شما میگین بنویسم چطوری مقدار جدید در table هام به روز رسانی بشه؟ یعنی نمیدونم اگه یکم بیشتر توضیح بدین ممنون میشم ................یه چیز دیگه من نمیدونم چطوری باید یه query که نوشتم رو فراخوانی کنم داخل یکی دیگه ، در واقع اصلا این چیزی که من می گم عملی هست؟
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
ممنون از پاسختون ..................... خوب اگه این جوری که شما میگین بنویسم چطوری مقدار جدید در table هام به روز رسانی بشه؟ یعنی نمیدونم اگه یکم بیشتر توضیح بدین ممنون میشم ................یه چیز دیگه من نمیدونم چطوری باید یه query که نوشتم رو فراخوانی کنم داخل یکی دیگه ، در واقع اصلا این چیزی که من می گم عملی هست؟

کوئری را برای چی میخوای داخل کوئری دیگر فراخوانی کنی؟ اگر نتایج رو میخوای join کنی که میتونی با استفاده از توابعی که جدول بر میگردونند این کار رو انجام بدی. اگر کامل بگی میخوای چه کنی شاید بتونم بهتر جواب بدم :gol:
 

naimi ali

عضو جدید
دوست عزیز لطفاً فارسی تايپ کنید.
1.
کد:
select *
from invoice inner join invoice_details on invoice.id=invoice_details.invoice_id
inner join product on invoice_details.product_id=product.id
where invoice.customer_id=@id -- id of customer that pass to the query

2.
کد:
select top 1 sum(quantity) as total,productTitle
from invoice_details inner join product on product.id=invoice_details.product_id
group by productTitle
order by sum(quantity) desc

3.
کد:
select sum(quantity) as Total, productTitle, Customer.firstname,customer.lastname
from invoice inner join invoice_details on invoice.id=invoice_details.invoice_id
inner join product on invoice_details.product_id=product.id
group by productTitle, Customer.firstname,customer.lastname

4.
کد:
select productTitle
from product
where id not in (select distinct product_id
from invoice_details)

5.جدولی باید باشد که شرکت را به محصولات متصل کند تا بتوان این کوئری را نوشت.
6 به بعد : جداول کامل نیست.
سلام چشم من جدول ها رو بررسی می کنم شما اگه ممکنه به بقیش هم جواب بدین واقعا ازتوون ممنونم
 

salome

عضو جدید
کوئری را برای چی میخوای داخل کوئری دیگر فراخوانی کنی؟ اگر نتایج رو میخوای join کنی که میتونی با استفاده از توابعی که جدول بر میگردونند این کار رو انجام بدی. اگر کامل بگی میخوای چه کنی شاید بتونم بهتر جواب بدم :gol:
ببین عزیزم من دستور update رو این جوری می نویسم:
کد:
update 
    set 
    where

ولی موضوع این جاست که داخل دستورات update نمیشه از join استفاده کرد یعنی من تا حالا ندیدم ..............از طرفی من نیاز دارم که توی دستور set ستونی رو از یه table دیگه بیارم :(
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
ببین عزیزم من دستور update رو این جوری می نویسم:
کد:
update 
    set 
    where

ولی موضوع این جاست که داخل دستورات update نمیشه از join استفاده کرد یعنی من تا حالا ندیدم ..............از طرفی من نیاز دارم که توی دستور set ستونی رو از یه table دیگه بیارم :(

مستقیم نمیشه join نوشت اما غیر مستقیم میشه :D
شما جداول و نتيجه ای رو که میخوای بنویس تا من برات بنویسمش :gol:
 

naimi ali

عضو جدید
سلام با عرض خسته نباشید خدمت شما استاد گرامی ...یه سوال invoice.customer_id=@id -- id of customer that pass to the query این @ چیه کارش چیه ؟؟ کاربردش چیه ؟؟ این باعث می شه تووی خروجی چی نمایش داده بشه؟؟؟
اگه اشتباه نکنم customer.id هد ستون از جدول customer هستش ؟؟؟؟
 
آخرین ویرایش:

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام با عرض خسته نباشید خدمت شما استاد گرامی ...یه سوال invoice.customer_id=@id -- id of customer that pass to the query این @ چیه کارش چیه ؟؟ کاربردش چیه ؟؟ این باعث می شه تووی خروجی چی نمایش داده بشه؟؟؟
اگه اشتباه نکنم customer.id هد ستون از جدول customer هستش ؟؟؟؟

منظورم پارامتر بود. اگر این رو نذاری مربوط به همه مشتریان میاد و اگر بجای آن مقدار کلید مشتری را بذاری نتیجه را فقط برای آن مشتری بر می گرداند :gol:
 

naimi ali

عضو جدید
سلام ... اووون جدول هایی که به شما استاد ارجمند گفتم جهت ساختن یک پاسگاه داده به نام shop بود....من این جدول هارو درست کردم ....relationships ها رو هم درست کردم....check constrans هارو نمی دونم باید چی کار کنم ....از این که من اینقدر مظاهم شما می شم واقعا شرمنده ام ....اگه شما نمی بودید من نمی دونستم چیکا رکنم....و اگه کار دیگه هم اگه مونده بگید من اگه فراموش کردم انجام بدم واسه این پایگاه داده.... آخه من باید با اوون query ها از این پایگاه خروجی بگیرم....
 

salome

عضو جدید
مستقیم نمیشه join نوشت اما غیر مستقیم میشه :D
شما جداول و نتيجه ای رو که میخوای بنویس تا من برات بنویسمش :gol:

خیلی ممنون .................:redface:

customer table :
(key)customer_national_number
customer_first_name
customer_last_name
(key)station_number
real_money

station_table:
(key)station_number
station_name
station_price

سوال : به ازای استفاده مشتری از هر station باید مبلغی از real_money به اندازه station_price کم شود و مقدار جدید جایگزین real_money قبلی شود .(update ستون real_money)
 

naimi ali

عضو جدید
با سلام خدمت شما استاد ارجمند....واقعا از شما تشکر می کنم اون برناکمه هایی که شما واسم نوشتید باعث شد که من کاملا کوری نوشتن رو یاد بگیرم....آرزوی موفقیت برای تک تک لحظه های زندیگتون رو دارم
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
خیلی ممنون .................:redface:

customer table :
(key)customer_national_number
customer_first_name
customer_last_name
(key)station_number
real_money

station_table:
(key)station_number
station_name
station_price

سوال : به ازای استفاده مشتری از هر station باید مبلغی از real_money به اندازه station_price کم شود و مقدار جدید جایگزین real_money قبلی شود .(update ستون real_money)

دوست عزیز اول ببخشید که دیر جواب میدم چون درگیر کار و یکسری مشکلات بودم.
دوم اینکه به نظرم شما کمی اشتباه کردید در طراحی.
ببین شما یک جدول برای مشتری، یک جدول برای Station و یک جدول واسط برای استفاده مشتری از Station نیاز دارید. اینجوری با sum استفاده ها از جدول station میتوانید کل استفاده را نگه دارید. اصولاً فیلدهای محاسباتی به دلیل اینکه ممکن است مشکلاتی را بوجود بیاورند ذخیره نمی شوند :gol:
 

hamed_4724

عضو جدید
با سلام خدمت دوستان عزيز ... ميخواستم بيبينم كسي هست تو mysql ميحط command كه فقط دستورات كليدي ميزنيم و داده وارد ميكنيم تو پايگاه داده كسي هست بتونه از فارسي هم توش استفاده كنه يعني بتونيم چطور كه بقيه زبان ها هستش و ميتونيم عوضش كنيم بتونيم داده ها رو فارسي ام وارد كنيم اگه كسي هست خواهشا فايل فارسي كه تو قسمت زبان ها هم اضافه بايد بشه برام بزاره و يه توضيح مختصر ... ممنووون ميشم ....
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
با سلام خدمت دوستان عزيز ... ميخواستم بيبينم كسي هست تو mysql ميحط command كه فقط دستورات كليدي ميزنيم و داده وارد ميكنيم تو پايگاه داده كسي هست بتونه از فارسي هم توش استفاده كنه يعني بتونيم چطور كه بقيه زبان ها هستش و ميتونيم عوضش كنيم بتونيم داده ها رو فارسي ام وارد كنيم اگه كسي هست خواهشا فايل فارسي كه تو قسمت زبان ها هم اضافه بايد بشه برام بزاره و يه توضيح مختصر ... ممنووون ميشم ....

سلام
فکر کنم اگر یک تاپیک با عنوان مناسب میزدی سریعتر جواب میگرفتی چون اینجا مختص SQL و به خصوص SQL Server هست :gol:
 

salome

عضو جدید
دوست عزیز اول ببخشید که دیر جواب میدم چون درگیر کار و یکسری مشکلات بودم.
دوم اینکه به نظرم شما کمی اشتباه کردید در طراحی.
ببین شما یک جدول برای مشتری، یک جدول برای Station و یک جدول واسط برای استفاده مشتری از Station نیاز دارید. اینجوری با sum استفاده ها از جدول station میتوانید کل استفاده را نگه دارید. اصولاً فیلدهای محاسباتی به دلیل اینکه ممکن است مشکلاتی را بوجود بیاورند ذخیره نمی شوند :gol:

ممنون از پاسختون ولی من واسه این که آنومالی update نداشته باشم و افزونگی اطلاعات نداشته باشم یه جدول واسط درست نکردم چون یه پروژه عملیه و باید تا تعداد خیلی خیلی زیادی اطلاعات رو جواب بده .......... یعنی بجز یه جدول واسط هیچ راهی نداره؟؟؟؟؟
 

prp-e

متخصص سیستم های Apple
کاربر ممتاز
سلام.

من میخوام جدولی رو آپدیت کنم به این نام:

mybb_3_users

میخوام مقدار classicpostbit از 0 به 1 برای تمام یوزرهام برسه.

ممنون میشم کمکم کنید :gol:
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام.

من میخوام جدولی رو آپدیت کنم به این نام:

mybb_3_users

میخوام مقدار classicpostbit از 0 به 1 برای تمام یوزرهام برسه.

ممنون میشم کمکم کنید :gol:

کد:
update tableName
set classicpos... = 1
where classicpos...=0

اگر درست متوجه نشدم ببخشید :gol:
 

bahar-64

عضو جدید
سلام من می خوام SQL یاد بگیرم برای شروع از کدوم ورژن استفاده کنم؟ در مورد SQL 2008 دنبال مطلب فارسی گشتم ولی چیز خوبی پیدا نکردم
 

tracer

کاربر حرفه ای
کاربر ممتاز
سلام من می خوام SQL یاد بگیرم برای شروع از کدوم ورژن استفاده کنم؟ در مورد SQL 2008 دنبال مطلب فارسی گشتم ولی چیز خوبی پیدا نکردم

سلام !
ورژن های زیادی هست ولی تفاوت ساختاری زیادی ندارند!
در ضمن برای یادگیری بهتر یه سر به اینجا بزن!
سایتی است مفید در زمینه نحوه بکار گیری دستورات SQL
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام من می خوام SQL یاد بگیرم برای شروع از کدوم ورژن استفاده کنم؟ در مورد SQL 2008 دنبال مطلب فارسی گشتم ولی چیز خوبی پیدا نکردم

اگر خود SQL Server مد نظر است از نسخه استاندارد شروع کنید و اگر میخواهید برای برنامه نویسی استفاده کنید میتوانید از نسخه های express و developer استفاده نمایید :gol:
 

tahmasbi

عضو جدید
تو پایگاه داده SQLمی خوام یه جدول بسازم که فیلدهاش از اطلاعات یه جدول دیگه به وجود بیاد. چه جوری میتونم این کارو بکنم؟ ممنون میشم جواب بدین.
 

A.S.Roma

عضو جدید
کاربر ممتاز
باید Query های داینامیک بنویسید.
یک متغییر از جنس NVARCHAR تعریف کنید.
توسط یک سری دستورات مقدار این متغییر و متناسب با دستور CREATE TABLE مورد نظر پر کنید.
در آخر از طریق دستور EXEC اونو اجرا کنید.

طبیعتا" باید از CURSER و امثالهم استفاده کنید.
 

RAJAH

عضو جدید
سلام
من یک مشکلی دارم تو SQL2008
من چندین پروسیجر دارم که از فانکشن تیبل توی اون استفاده کردم.الان که تعداد رکوردهای جداول میلیونی شده پارامترهایی که به فانکشن تیبل ارسال کردم مشکل پیدا کرده و باعث سنگین شدن و طولانی شدن زمان اجرای استور شده.جالب اینجاست که اگر مقادیر را مستقیما تو استور ، تو همون فانکشن تیبل ست کنم سرعت خوب و معمولی
میخوام بدونم کانفیگی یا .... باید انجام می دادم رو SQL
لطفا کمک کنید
 

computer_soft

اخراجی موقت
سلام برای برنامه نویسی در SQL و با کمک VB یا C# ، برای یک نمودار ER معمولا چه دستوراتی رو باید یاد بگیرم؟؟؟؟ کسی میتونه کمکم کنه؟ من فقط یک نمودار ER کشیده ام و تبدیلش به جدول .. حالا باید برای پیاده سازیش چیکار کنم؟ هم باید تو SQL برنامه نویسی کنم هم تو C# یا VB ؟؟ یا فقط یکیش؟ ممنون میشم راهنماییم کنین
 

golemaryam_1983

عضو جدید
کاربر ممتاز
سلام برای برنامه نویسی در SQL و با کمک VB یا C# ، برای یک نمودار ER معمولا چه دستوراتی رو باید یاد بگیرم؟؟؟؟ کسی میتونه کمکم کنه؟ من فقط یک نمودار ER کشیده ام و تبدیلش به جدول .. حالا باید برای پیاده سازیش چیکار کنم؟ هم باید تو SQL برنامه نویسی کنم هم تو C# یا VB ؟؟ یا فقط یکیش؟ ممنون میشم راهنماییم کنین

سلام دوست عزیز شما پایگاه داده و جداول رو که در sql ایجاد کردید بقیش در کد نویسی انجام میشه.

http://forum.patoghu.com/thread26663.html



با تشکر
 

parham200

عضو جدید
مشکل خیلی جدی در اتصال vs2010 به sql server management 2008

مشکل خیلی جدی در اتصال vs2010 به sql server management 2008

سلام
خسته نباشید
من یه مشکل خیلی جدی در اتصال vs2010 به sql server management 2008 دارم که یه error خیلی عجیب میده که خیلی فوریه و واقعا نمیدونم چه کار کنم.:confused::confused::mad:
تصویر error رو براتون قرار میدم.sql.jpg

ممنون میشم اگه راهنماییم کنید
 

parham200

عضو جدید
مشکل خیلی جدی در اتصال به sql server management 2008

مشکل خیلی جدی در اتصال به sql server management 2008

سلام
خسته نباشید
من یه مشکل خیلی جدی در اتصال به sql server management 2008 دارم که یه vs2010 ارور خیلی عجیب میده که خیلی فوریه و واقعا نمیدونم چه کار کنم.
ممنون میشم اگه راهنماییم کنید
db.JPG
 

Similar threads

بالا