userinfo close

  ,

برنامه نویسی .NET (دات نت)


dotnetclub

تاسیس: 20 آذر 1383  پروفایل کلوب
مدیر کلوب: سیامک سرمدی - معاونان
ارسال تبلیغات، آگهی کار و مطالب نامربوط به موضوع کلوب باعث مسدود سازی فوری عضویت میگردد.
 

لیست بحث ها

  عناوین بحث ها ارسال کننده پاسخها بازدید بروز رسانی اولویت
40
915
91/2/18 (10:42)
34
954
90/11/30 (14:32)
5
445
90/5/10 (13:54)
3
13
91/3/10 (02:32)
3
39
91/3/6 (22:39)
2
4
91/3/2 (23:20)
0
3
91/2/30 (14:23)
11
26
91/2/24 (07:33)
2
7
91/2/18 (11:53)
0
0
91/2/4 (14:55)
1
4
91/2/3 (13:41)
4
6
91/2/3 (13:40)
0
4
91/2/2 (13:44)
0
9
91/1/25 (17:52)
2
34
91/1/18 (20:10)
2
11
90/12/26 (20:40)
1
10
90/12/22 (14:18)
3
17
90/12/22 (14:16)
2
21
90/12/19 (16:34)
0
6
90/12/15 (21:22)

عنوان بحث

پرستو ماهانی , parastoo_mahani
پرستو ماهانی - 12:16 1390/11/16

کمک یه سوال sql

جداول زیر رو دارم

employee

(empno,name,office,age)

books

(isbn,title,authars,publisher)

loan

(empno,isbn,date)

 

hala mikham asamie karkonani ro peida konam ke bish az 5 ketabe mokhtalef az macgrow ro kharide bashan

midonam ke bayad books va loan ro join konam bar asase eshterake isbn va select konam isbn va empno va title ro az onayi ke publisher=macgrow bashe haselesho berizam to r1(ta inja ketabaye kharidari shodeye macgrow ro peida kardim)
bad r1 ro join konam ba employee be sharte eshterake loan.empno va r1.mpno va select konam azash empno,isbn,title va berizamesh to r2(ta inja code karmandayiro ke ketabi az macro kharidan ro be hamrahe onvane ketab gereftim)
bad r2ro moratab mikonim bar asase aval code karmand dovom onvane ketab bad count migirim azash va name code karmand va countesh ro mirizim to r3
bad r3ro join mizanim ba employi besharti ke empnoha barabar bashe va count>5 bashe va azash select mikonim name karmand ro
   ama nemidonam to sql bayad chetor benvisam dastorati ke tavabei mesle count dare va nahveye entesabe natijeye query be r ro balad nistam mamnon misham age kasi komakam kone 

  • ارسال پاسخ

پاسخ ها

ترتیب پاسخ ها : از اولین پاسخ
رحیم کلاه ساز , rahimkolahsaz
رحیم کلاه ساز - 15:17 1390/12/8
3
اگر كتابهای تكراری رو هم بخواهیم حساب كنیم با دستور زیر بدست میاد

 SELECT NAME
       FROM Employee E INNER JOIN loan L ON E.empno = L.empno     
        INNER JOIN books B ON L.isbn = B.isbn     
WHERE publisher='macgrow'
    GROUP BY NAME,publisher 
    HAVING COUNT(*) > 5 

در اینحالت اگر كسی چند بار یك كتاب را خریده باشد به همان تعداد در جمع در نظر گرفته میشود


اگر بخواهیم نام كارمندانی را كه بیش از 5 كتاب مختلف خریده باشند یعنی اگر یك كتاب را چند بار خریده باشند حساب نكنیم و یكبار در نظر بگیریم از دستور زیر استفاده كنید

SELECT v1.NAME,v1.publisher,COUNT(*)
    FROM ( SELECT DISTINCT E.empno,E.NAME,B.Title,B.publisher
            FROM Employee E
                INNER JOIN loan L ON E.empno = L.empno 
                INNER JOIN books B ON L.isbn = B.isbn
            WHERE B.publisher = 'macgrow'
         ) v1
    GROUP BY V1.NAME,V1.Publisher
    HAVING COUNT(*) > 5    

پرستو ماهانی , parastoo_mahani
پرستو ماهانی - 13:13 1390/11/16
2

سلام من با شکل کلی دستورات تو sql مشکل دارم . من میدونم که باید چه چیزایی رو جوین کنم و چه چیزیرو سلکت کنم اما نمیدونم که چطور تو sql بنویسم مثلا اول کدخرید کتابهایی رو که مولفش mac هست رو پیدا میکنم اینکه چطور تو sqlserver این رو بریزم تو r1 رو بلد نیستم و اینکه در مرحله آخر که کد کسانی رو که کتابی از mac رو خریدن رو select میکنم اینکه چطور این نتیجه رو بر اساس اول کد کاربر و بعد عنوان کتاب مرتب کنم و بریزم تو r2 رو بلد نیستم  ممنون

راحله پ , raheleh_p
راحله پ - 12:41 1390/11/16
1
salam. man khoob motevaje soalet nashodam. mage in select va join haro toye sql, dar yek store procedure neminevisi?
dar sp(store orocedure) mitooni hamechi benevisi, nesle halghe, shart, tarife moteghayer, farakhooni hame tabe ha va ...

کلوب دات کام
کلیه محتوای این سایت توسط کاربران درج شده است و کلوب دات کام هیچ مسئولیتی نسبت به آن ها ندارد.