برگزیده های پرشین تولز

مشکل در نوشتن کد SQL

Mehran NZ

Registered User
تاریخ عضویت
19 ژانویه 2007
نوشته‌ها
91
لایک‌ها
1
دوستان می خوام این دستور و در سکیوئل بنویسم هر جور که به مخم فشار میارم راهی به ذهنم نمی رسه الان کاملا هنگ کردم یکی کمک کنه لطفا
سوال هم این بیده خیلی ساده و مفید: نام شرکتهایی که هیچ دو کارمند همشهری نداشته باشند.
اینم جدولش:
Employee(employeename,street,city)
Works(employeename,companyname,salary)
Company(companyname,city)
در محیط اکسس دارم کار می کنم و دیتابیس به هیچ زبانی متصل نشده و فقط می خوام با کوئری کد رو بنویسم!
رابطه و اینا هم که از طریق employeename دو جدول Employee و Works رو می شه به هم پیوند داد و از طریق companyname هم دو جدول WorksوCompany رو!
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
فکر نکنم بدون زبان بشه
1657.gif
، یه جورایی چیزی که باید بگیری از تیبل رو میخوای تو خودش نباشه. با دو سه تا حلقه تو بیسیک فکر میکنم شدنی باشه البته اکسس ندارم تست کنم.
 

pro.net

Registered User
تاریخ عضویت
27 آپریل 2010
نوشته‌ها
81
لایک‌ها
1
مشکلت اگر حل نشده بگو که کمک کنم.فکر کنم دیر رسیدم رفیق
 

Mehran NZ

Registered User
تاریخ عضویت
19 ژانویه 2007
نوشته‌ها
91
لایک‌ها
1
کر نکنم بدون زبان بشه ، یه جورایی چیزی که باید بگیری از تیبل رو میخوای تو خودش نباشه. با دو سه تا حلقه تو بیسیک فکر میکنم شدنی باشه البته اکسس ندارم تست کنم.
اون و که می دونم می شه ولی با کوئری می خوام
کوئری خیلی دست آدم و می بنده من خودم هیچ راهی به ذهنم نمی رسه ولی خوب سوال استادمون هست چند تا سوال سخت دیگه هم بود که حلشون کردم ولی این و اصلا هیچ ایده ای ندارم
در ضمن اگه بلدین بنویسین یا می خواین فکر کنید روش اکسس هم نشد سکیوئل سروری اوراکلی چیزی! هر چیزی که راه حل بده حالا یکم تغییر برام مشکلی ایجاد نمی کنه!
مشکلت اگر حل نشده بگو که کمک کنم.فکر کنم دیر رسیدم رفیق
سلام
مشکلم حل نشده و کمک می خوام (در کل یک ساعت هم نیست تاپیک زدم پس زود رسیدین :rolleyes:)
 
Last edited:

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
اینو تست کردی؟ D:
نمیدونم اکسس از IN پشتیبانی میکنه یا نه..
کد:
select * from employee 
inner join works on employee.employeename = works.employeename
 inner join company on works.companyname = company.companyname 
where employee.city NOT IN(company.city)
 

Mehran NZ

Registered User
تاریخ عضویت
19 ژانویه 2007
نوشته‌ها
91
لایک‌ها
1
اینو تست کردی؟ D:
نمیدونم اکسس از IN پشتیبانی میکنه یا نه..
کد:
select * from employee 
inner join works on employee.employeename = works.employeename
 inner join company on works.companyname = company.companyname 
where employee.city NOT IN(company.city)
آره in رو قبول می کنه!
می گم داداش این کدی که نوشتی هم تو اکسس هم سکیوئل سرور خطا میده فکر کنم دو تا inner join رو نمی شه پشت سر هم استفاده کرد؟!
 

Mehran NZ

Registered User
تاریخ عضویت
19 ژانویه 2007
نوشته‌ها
91
لایک‌ها
1
آره in رو قبول می کنه!
می گم داداش این کدی که نوشتی هم تو اکسس هم سکیوئل سرور خطا میده فکر کنم دو تا inner join رو نمی شه پشت سر هم استفاده کرد؟!
داداش دستور و تونستم اجرا کنم یه پرانتز و کم گذاشته بودی
کد:
select employee.employeename
from (employee inner join works on employee.employeename=works.employeename)
inner join company on company.companyname= works.companyname
where employee.city NOT IN(company.city)
ولی مسئله حل نشده کارمندها نباید در یک شهر باشند نه اینکه کارمند و کمپانی در یک شهر نباشند منطور دستور where هست که اشتباه نوشته شده!
 

Mehran NZ

Registered User
تاریخ عضویت
19 ژانویه 2007
نوشته‌ها
91
لایک‌ها
1
سلام
داشتم رد می شدم دیدم اینجا صفحه اول هستش مثل اینکه کس دیگه تو این همه مدت تو این بخش پست نزده بود لول
خلاصه اینکه خودم حلش کردم اینم راه حلش
کد:
select companyname
from company,employee
where company.employeename=employee.employeename and employee.city  in
(
select city
from employee
group by city
having count(city)<2
)
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
سلام
داشتم رد می شدم دیدم اینجا صفحه اول هستش مثل اینکه کس دیگه تو این همه مدت تو این بخش پست نزده بود لول
خلاصه اینکه خودم حلش کردم اینم راه حلش
کد:
select companyname
from company,employee
where company.employeename=employee.employeename and employee.city  in
(
select city
from employee
group by city
having count(city)<2
)
D: جالب بود پس خودت یپدا کردی
 

Mehran NZ

Registered User
تاریخ عضویت
19 ژانویه 2007
نوشته‌ها
91
لایک‌ها
1
D: جالب بود پس خودت یپدا کردی
آره دادا ببین این سایت خیلی باحاله اگه فکر می کنی مشکل داری حتما سر بزن نه تو کتابها نه هیچ جای دیگه بهتر از این برای کو ئری مناسب نیست اگه این نبود من بدون تعارف نمی تونستم همچین چیزایی رو حل کنم
http://www.sql-tutorial.ru
http://www.sql-ex.ru
 

elna

کاربر تازه وارد
تاریخ عضویت
15 سپتامبر 2013
نوشته‌ها
34
لایک‌ها
3
Ban kanid MARAB,BAkoshid MARA
 
بالا