Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Microsoft SQL Server / MSDE _ Przebobienie zapytania z MySql na SQL Server 2012

Napisany przez: romek510 5.02.2014, 14:38:08

Witam, mam taki problem. Kiedys napisałem stronkę która korzystala z xampa i mysql. Użyłem tam pewnego zapytania które z tabeli z danymi o meczach tworzyło mi tabele z wynikami ligowymi. chciałbym teraz to zapytanie przenieść do SQL Server 2012, jednak nie działa. Problem jest w miejscu instrukcji if.

  1. SELECT
  2. d.nazwa_druzyny,
  3. SUM(IF(m.druzyna1=d.id_druzyny AND m.gole_druzyny1>m.gole_druzyny2 OR m.druzyna2=d.id_druzyny AND m.gole_druzyny1<m.gole_druzyny2, 1, 0 ) ) AS zw,
  4. SUM(IF(m.druzyna1 = d.id_druzyny AND m.gole_druzyny1 < m.gole_druzyny2 OR m.druzyna2 = d.id_druzyny AND m.gole_druzyny1 > m.gole_druzyny2 , 1, 0 ) ) AS prz,
  5. SUM(IF(m.gole_druzyny1 = m.gole_druzyny2 , 1, 0 ) ) AS re,
  6. sum( IF( m.druzyna1 =d.id_druzyny, m.gole_druzyny1 , IF( m.druzyna2 =d.id_druzyny, m.gole_druzyny2 , 0 ) ) ) AS bramkistrzelone,
  7. sum( IF( m.druzyna1 =d.id_druzyny, m.gole_druzyny2 , IF( m.druzyna2 =d.id_druzyny, m.gole_druzyny1 , 0 ) ) ) AS bramkistracone,
  8. sum( IF( m.druzyna1 =d.id_druzyny AND m.gole_druzyny1 > m.gole_druzyny2 OR m.druzyna2 =d.id_druzyny AND m.gole_druzyny1 < m.gole_druzyny2 , 1, 0 ) )*3+sum( IF( m.gole_druzyny1 = m.gole_druzyny2 , 1, 0 ) ) AS punkty
  9. FROM
  10. druzyny AS d
  11. LEFT JOIN
  12. mecze AS m
  13. ON
  14. (m.druzyna1 = d.id_druzyny OR m.druzyna2 = d.id_druzyny)
  15. GROUP BY
  16. d.id_druzyny,
  17. d.nazwa_druzyna
  18. ORDER BY
  19. punkty DESC;


Da się taka tabele stworzyć w jednym zaptyaniu, czy trzeba bedzie pisac procedure?

Napisany przez: phpion 5.02.2014, 14:43:53

Ciężko poszukać?
http://stackoverflow.com/questions/63447/how-do-you-perform-an-if-then-in-an-sql-select

Napisany przez: romek510 5.02.2014, 14:54:47

Szukałem, ale nie natrafiłem na to, dzieki za pomoc.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)