En iyi yanıtlayıcılar
Karışık MS-SQL Sorgu

Soru
-
Merhaba arkadaşlar, aşağıdaki şekildeki örnekte yapmaya çalıştığım bir sorgu var, comboboxdan dönemi seçtiğimde stop min denilen sütunda o aya ait hatlara göre süreyi hesaplamaya çalışıyorum, arıza grubu seçildiğinde ise o arızaya ait süreyi hesaplamaya çalışıyorum ancak STOP MIN kısmında o aya ait tüm süreler geliyor hatlara göre gelmiyor. Yardımcı olabilirseniz sevinirim.
Sorgum :
"select hat,makina,sum(calisma_saati) as [RUN MIN],datediff(mi,convert(char(50), bas_saati, 108),convert(char(50), bitis_saati, 108)) as [BREAK MIN],(select sum(datediff(mi,convert(char(50), bas_saati, 108),convert(char(50), bitis_saati, 108))) from guncel where ay='"& ComboBox5.Text & "') as [STOP MIN] From guncel where grup= '"& ComboBox6.Text & "' group by hat,makina,bitis_saati,bas_saati"
- Düzenleyen Seçil ŞENGÜL 22 Mayıs 2014 Perşembe 06:16
Yanıtlar
-
Oncelikle, boyle SQL asla yazmayin, parametre kullanin.
select hat,makina,sum(calisma_saati) as [RUN MIN], datediff(mi,bas_saati,bitis_saati) as [BREAK MIN], (select sum(datediff(mi,bas_saati, bitis_saati)) from guncel t1 where t1.hat = t2.hat and ay=@ay) as [STOP MIN] From guncel t2 where grup= @grup group by hat,makina,bitis_saati,bas_saati
- Yanıt Olarak İşaretleyen Burak ORDU 28 Mayıs 2014 Çarşamba 06:34
Tüm Yanıtlar
-
STOP MIN kolonunu bir inner select ifadesi ile çekiyorsunuz. bu yüzden gruplama ifadelerinizle ilişkisi kesilmiş oluyor. Diğer değerler de pek doğru görünmüyor buradan bakınca açıkçası.
Veriyi tuttuğunuz tablonun 5-10 satırını paylaşırsanız, veriyi tutuş biçiminizi daha iyi anlarız ve size daha çok yardımcı olabiliriz.
Burak SARICA
-
-
Oncelikle, boyle SQL asla yazmayin, parametre kullanin.
select hat,makina,sum(calisma_saati) as [RUN MIN], datediff(mi,bas_saati,bitis_saati) as [BREAK MIN], (select sum(datediff(mi,bas_saati, bitis_saati)) from guncel t1 where t1.hat = t2.hat and ay=@ay) as [STOP MIN] From guncel t2 where grup= @grup group by hat,makina,bitis_saati,bas_saati
- Yanıt Olarak İşaretleyen Burak ORDU 28 Mayıs 2014 Çarşamba 06:34