none
Karışık MS-SQL Sorgu RRS feed

  • 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"


    22 Mayıs 2014 Perşembe 06:05

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
    22 Mayıs 2014 Perşembe 16:58

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

    22 Mayıs 2014 Perşembe 07:00
  • 22 Mayıs 2014 Perşembe 07:18
  • 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
    22 Mayıs 2014 Perşembe 16:58