За последние 24 часа нас посетили 17740 программистов и 1619 роботов. Сейчас ищут 1855 программистов ...

Как перевести mssql в mysql ?

Тема в разделе "MySQL", создана пользователем drkrol, 19 дек 2016.

  1. drkrol

    drkrol Активный пользователь

    С нами с:
    25 авг 2016
    Сообщения:
    38
    Симпатии:
    1
    Здравствуйте. Есть вот такой mssql запрос:
    PHP:
    1. declare @start date = '2016-12-12'; -- Новая дата заезда
    2. declare @end date = '2016-12-20'; -- Новая дата выезда
    3. declare @today date = '2016-12-11';
    4.  
    5. update  main
    6. set     numbernomer = null
    7. where   datestart > @today;
    8.  
    9. declare @mainnumber int;
    10.  
    11. while exists (select * from main where numbernomer is null)
    12. begin
    13.  
    14.     select top(1) @mainnumber = id
    15.     from    main
    16.     where   numbernomer is null
    17.     order by datestart asc, datediff(day, datestart, dateend) desc;
    18.  
    19.     update m0
    20.     set     numbernomer = m1.nomer
    21.     from    main m0
    22.             cross apply (SELECT top 1 a.nomer
    23.                         FROM    allnomer a
    24.                                 LEFT JOIN main m
    25.                                 ON a.nomer = m.numbernomer
    26.                                 AND DATEDIFF(day, m.datestart, m0.dateend) * DATEDIFF(day, m.dateend, m0.datestart) <= 0
    27.                                 left join (select m2.numbernomer, max(m2.dateend) as dateend from main m2 group by m2.numbernomer) as m2
    28.                                         on a.nomer = m2.numbernomer
    29.                         WHERE a.type = 'lux' AND m.numbernomer IS NULL
    30.                         order by datediff(day, m2.dateend, m0.datestart), a.nomer
    31.                         ) as m1
    32.     where   m0.id = @mainnumber;
    33.  
    34.  
    35. SELECT a.nomer
    36. FROM allnomer a
    37. LEFT JOIN main m
    38.   ON a.nomer = m.numbernomer
    39.   AND DATEDIFF(day, m.datestart, @end) * DATEDIFF(day, m.dateend, @start) <= 0
    40. WHERE a.type = 'lux' AND m.numbernomer IS NULL;
    Подскажите пожалуйста, что нужно изменить, чтобы этот запрос работал в mysql? Я, кроме того, что нужно decale на set поменять и тип данных убрать, ничего не знаю.
    P.S. Запрос должен будет выполняться в этой таблице: http://sqlfiddle.com/#!9/81225
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  3. nasonov1990

    nasonov1990 Новичок

    С нами с:
    19 дек 2016
    Сообщения:
    2
    Симпатии:
    0
    Сложновато вам будет это осуществить