SQL Sorgusu İçin Yardım
-
Arkadaşlar sınav yerleştirme sistemi yapmaktayım ve son aşamaya geldim.
Sistem kısaca şöyle. Okullar başvuru yapıyor, ayrıca her okul çeşitli sınıflardan öğrenciler ekliyor (Mesela 5. sınıf öğrencisinden 8 tane, 6. sınıf öğrencisinden 7 tane vs.. gibi, burası önemli değil).
Öğrenciler tablosu
Sınav solonlarındaki sıralar tablosu
Örnek vereyim. Öğrenciler tablosundaki öğrenci idsi 1 ve 3 olan öğrenciler aynı okulda olup ve de aynı sınıftalar. Bu öğrencileri sıralara yerleştirme yaparken aynı sınıfta olan öğrenciler aynı salonda sınava girmemeli (2 gündür kafamı patlattığım nokta.)
Umarım açıklayıcı olmuştur. (Projeyi asp.net ile yapmaktayım. Baya bir tıkandım burada.)
Yardımlarınızı bekliyorum.
-
hocam biraz uğraşırsak yaparız bişey değilde durumu tam çözemedim ben tek istediğin aynı okuldakiler aynı salona giremesin mi ? bunu program üzerinden çözmüyomusun hocam tam yapıyı bilmediğim için soruyorum ? yapıyı anlarsak daha iyi olur
-
hocam where kısmına eklemen gereken şey sadece 1.ögrenci_okul_id <> 2.ögrenci_okul_id yani aynı olmayanlar gelsin demek kısaca :D:D
-
Hocam bir tane daha örnek vereyim
- Öğrenciler tablosundan ogrenci_ID = 9 olan öğrenciyi (Bu öğrencinin adı Ali olsun) seçelim
- Ali'yi sıralar tablosundaki sira_ID = 775 olan yere yerleştirdik diyelim.
- Dolayısıyla bu öğrencinin salon_ID = 65 olmuş olur (65 numaralı salona yerleşmiş olacaktır.)
- Daha sonra ogrenci_ID = 10 olan öğrenciyi bir sıraya yerleştirmek istediğimizde (Bu öğrencinin adı Veli olsun)
- Ali ile Veli okudukları okulda aynı sınıftalar (Çünkü ikisinin de okul_ID = 3 ve sinif_ID = 5)
- Veli bir sıraya yerleşeceği zaman salon_ID numarası 65 olmamalıdır.
Umarım daha da açıklayıcı olmuştur.
-
ontedi bunu yazdı
Hocam bir tane daha örnek vereyim
- Öğrenciler tablosundan ogrenci_ID = 9 olan öğrenciyi (Bu öğrencinin adı Ali olsun) seçelim
- Ali'yi sıralar tablosundaki sira_ID = 775 olan yere yerleştirdik diyelim.
- Dolayısıyla bu öğrencinin salon_ID = 65 olmuş olur (65 numaralı salona yerleşmiş olacaktır.)
- Daha sonra ogrenci_ID = 10 olan öğrenciyi bir sıraya yerleştirmek istediğimizde (Bu öğrencinin adı Veli olsun)
- Ali ile Veli okudukları okulda aynı sınıftalar (Çünkü ikisinin de okul_ID = 3 ve sinif_ID = 5)
- Veli bir sıraya yerleşeceği zaman salon_ID numarası 65 olmamalıdır.
Umarım daha da açıklayıcı olmuştur.
hocam tablolarını data ve şema olarak gönderebilir misin gerçek data üzerinde yapıp gönderiyim
-
Tamam hocam, MySQL bu arada
Öğlen arasında yollarım.
ontedi tarafından 06/Mar/13 10:57 tarihinde düzenlenmiştir -
olur hocam
-
hocam aklıma gelen ilk şey temporary table.
sırayla öğrencileri gezip hepsini bi sınıfa sokucaksın anladığım kadarıyla, herhangi bi öğrenciye geldiğinde onun okulunun id si ile bi temporar table oluştur
mesela ogrenciId = 16 | sinifId = 22 olan öğrenciye geldin gidip sinifId si bu öğrencinin sinif id si ile aynı olmayanları bi tabloya çekip daha sonra o tablodan random bi sınıf çekebilirsin.
"CREATE TEMPORARY TABLE tempAssigment
SELECT siniflar.* FROM siniflarWHERE siniflar.sinifId <> ogrenciId"
-
abi akşam gelince bakar dönerim sana. Dışarıdayım şu an
-
epeydır ugrasmıyorum kodları unuttum istedıgı algorıtma su şekilde sanırım
salona kapasıte belırleyıp bu kapasıte ıcınde okul ıd aynı olan ögrencılerde sınıf adı aynı olan ögrencıler bu salonda bulunmayacak şeklınde bı algorıtma lazsım sana
solonu sınırlandırmadan yaparsan bosta kalanlar hata verıcek yada bunları sınava almıyonmu der hoca :D
tam derleme hazırlamak ıcın deneme yapmak lazım ama suanda yapamıyorum :S
(klavyeyı yenı aldım bazı tuşlar acılmadı harfler basmı yo bazen yazım hatalarının kusuruna bakman )
----------------------------------------------
aklıma geldıkce eklıyorum
yada önce aynı okulda aynı sınıfta olanları yerlestırecen amam bu durumda da soyle bısey cıkıyo ortaya her ögrencı ıcın bı salon gerkıcek sana
1 okul 1 sınıfta 20 ögrc warsa 20 salon gerekır senın dedıgın sekılde daha sonra2.okul 1 sınıfı yerlestırıcen kı aynı sıftakı ögrencıler aynı salonda gırsın sınava
20 salon doldugunda
2. okulda 25 ögrencı warsa bunlar acıkta kaldıgından hata verıcek
her halukarda sınav salonu ve ögrencı sayısı lazım her salonda kac ögrencıyı sınava sokucan
onları werırsen daha da detaylandırız algorıtmayı olusturuz ama codlar benden gelmez kusura bakma -
hocam tablolarını inceledim bunu program tarafından eklenirken kontrol etmek en mantıklısı
her döngü içersinde id ler uyuşuyorsa sonraki kayıda geç uyuşmuyorsa oturuma ekle gibi yapman lazım
yada trigger yaparsın insert için aynı id var ise ekleme yapabilirsin oda olur