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

drkrol

Постоялец
Регистрация
6 Мар 2016
Сообщения
112
Реакции
11
Здравствуйте. Есть вот такой mssql запрос:
PHP:
declare @start date = '2016-12-12'; -- Новая дата заезда
declare @end date = '2016-12-20'; -- Новая дата выезда
declare @today date = '2016-12-11';

update  main
set     numbernomer = null
where   datestart > @today;

declare @mainnumber int;

while exists (select * from main where numbernomer is null)
begin

    select top(1) @mainnumber = id
    from    main
    where   numbernomer is null
    order by datestart asc, datediff(day, datestart, dateend) desc;

    update m0
    set     numbernomer = m1.nomer
    from    main m0
            cross apply (SELECT top 1 a.nomer
                        FROM    allnomer a
                                LEFT JOIN main m
                                ON a.nomer = m.numbernomer
                                AND DATEDIFF(day, m.datestart, m0.dateend) * DATEDIFF(day, m.dateend, m0.datestart) <= 0
                                left join (select m2.numbernomer, max(m2.dateend) as dateend from main m2 group by m2.numbernomer) as m2
                                        on a.nomer = m2.numbernomer
                        WHERE a.type = 'lux' AND m.numbernomer IS NULL
                        order by datediff(day, m2.dateend, m0.datestart), a.nomer
                        ) as m1
    where   m0.id = @mainnumber;

end;

SELECT a.nomer
FROM allnomer a
LEFT JOIN main m
  ON a.nomer = m.numbernomer
  AND DATEDIFF(day, m.datestart, @end) * DATEDIFF(day, m.dateend, @start) <= 0
WHERE a.type = 'lux' AND m.numbernomer IS NULL;
Подскажите пожалуйста, что нужно изменить, чтобы этот запрос работал в mysql? Я, кроме того, что нужно decale на set поменять и тип данных убрать, ничего не знаю.
P.S. Запрос должен будет выполняться в этой таблице: Для просмотра ссылки Войди или Зарегистрируйся
 
  • Заблокирован
  • #2
Здравствуйте. Есть вот такой mssql запрос:
PHP:
declare @start date = '2016-12-12'; -- Новая дата заезда
declare @end date = '2016-12-20'; -- Новая дата выезда
declare @today date = '2016-12-11';

update  main
set     numbernomer = null
where   datestart > @today;

declare @mainnumber int;

while exists (select * from main where numbernomer is null)
begin

    select top(1) @mainnumber = id
    from    main
    where   numbernomer is null
    order by datestart asc, datediff(day, datestart, dateend) desc;

    update m0
    set     numbernomer = m1.nomer
    from    main m0
            cross apply (SELECT top 1 a.nomer
                        FROM    allnomer a
                                LEFT JOIN main m
                                ON a.nomer = m.numbernomer
                                AND DATEDIFF(day, m.datestart, m0.dateend) * DATEDIFF(day, m.dateend, m0.datestart) <= 0
                                left join (select m2.numbernomer, max(m2.dateend) as dateend from main m2 group by m2.numbernomer) as m2
                                        on a.nomer = m2.numbernomer
                        WHERE a.type = 'lux' AND m.numbernomer IS NULL
                        order by datediff(day, m2.dateend, m0.datestart), a.nomer
                        ) as m1
    where   m0.id = @mainnumber;

end;

SELECT a.nomer
FROM allnomer a
LEFT JOIN main m
  ON a.nomer = m.numbernomer
  AND DATEDIFF(day, m.datestart, @end) * DATEDIFF(day, m.dateend, @start) <= 0
WHERE a.type = 'lux' AND m.numbernomer IS NULL;
Подскажите пожалуйста, что нужно изменить, чтобы этот запрос работал в mysql? Я, кроме того, что нужно decale на set поменять и тип данных убрать, ничего не знаю.
P.S. Запрос должен будет выполняться в этой таблице: Для просмотра ссылки Войди или Зарегистрируйся

Вот процедура конвертации:
Конвертация из MSSQL в MYSQL.

Для конвертации воспользуемся скриптом VB for Application
1.Копируем в буфер все содержимое страницы
2.Запускаем Microsoft Word
Для Word 2003:
В меню Сервис -> Сценарии -> Редактор Visual Basic (Tools->Macro…->Visual Basic Editor)
Для Word 2007:
Нажать на Office Button-> Word Options->Show Developer tab in the Ribbon. На панели появится вкладка Developer. В ней нажать на кнопку Visual Basic.
3.Правой кнопкой нажать на Проект (Project). Выбрать Вставить–> Модуль (Insert -> Module)
4.Вставить содержимое
5.Изменить
Const MSSQL_HOST = "(local)"
Const MSSQL_DB_NAME = "Northwind"
на
Const MSSQL_HOST = "SERVERSQLEXPRESS "
Const MSSQL_DB_NAME = "TEST"
где TEST имя базы данных MSSQL
6.Изменить
Const OUTPUT_TO_FILE = 0 '1—> write file (latin1 encoding);
Const OUTPUT_FILENAME = "c:export.sql"
на
Const OUTPUT_TO_FILE = 1 '1—> write file (latin1 encoding);
Const OUTPUT_FILENAME = "c:export.sql"
при необходимости можно изменить путь к файлу, в который будет осуществляться экспорт.
7.В панели нажать на кнопку Run. Выбрать имя сценария (MacroName) Main и нажать Run.
8.После выполнения должно появиться сообщение о завершении.
В результате мы получили SQL файл в формате MySQL.
Этот файл в некоторых случая стоит просмотреть и при необходимости скорректировать.

Импорт в MySQL:

Можно осуществить различными способами:
1.Если есть доступ к shell на сервере.
a.Копируем файл export.sql на сервер
b.В командной строке сервера
mysql –u username –p имяБД < export.sql

2.Если доступа к shell нет, то можно воспользоваться, например Для просмотра ссылки Войди или Зарегистрируйся или EMS MySQL Manager Lite Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
Вот процедура конвертации:
я не вижу, на каком моменте я вставляю в word свой sql запрос? да и не нашел я то, что тут написано... ворд у меня русскоязычный 2016. Нету тут "Показать меню разработчика"
 
  • Заблокирован
  • #4
я не вижу, на каком моменте я вставляю в word свой sql запрос? да и не нашел я то, что тут написано... ворд у меня русскоязычный 2016. Нету тут "Показать меню разработчика"
Ну знаете, я за вас качать word 2003-2007 не буду. Вы просили подсказать, я подсказал.

Visual Basic for Applications (VBA, Visual Basic для приложений) — немного упрощённая реализация Для просмотра ссылки Войди или Зарегистрируйся Для просмотра ссылки Войди или Зарегистрируйся, встроенная в линейку продуктов Для просмотра ссылки Войди или Зарегистрируйся (включая версии для Для просмотра ссылки Войди или Зарегистрируйся), а также во многие другие программные пакеты, такие как Для просмотра ссылки Войди или Зарегистрируйся, Для просмотра ссылки Войди или Зарегистрируйся, Для просмотра ссылки Войди или Зарегистрируйся, Для просмотра ссылки Войди или Зарегистрируйся и ESRI Для просмотра ссылки Войди или Зарегистрируйся. VBA покрывает и расширяет функциональность ранее использовавшихся специализированных макро-языков, таких как Для просмотра ссылки Войди или Зарегистрируйся.
 
Последнее редактирование:
Посмотрите в хелпе, там написано как открыть меню разработчика
Отображение вкладки "Разработчик" на ленте Microsoft Office Word 2007/2010: – нажмите кнопку Office –> Параметры Word; – в открывшемся диалоговом окне Параметры Word в меню (слева) выберите Основные; – в разделе Основные параметры работы с Word установите флажок Показывать вкладку "Разработчик" на ленте –> OK.

А вообще пару десяти минутных уроков на юутубе, и ТС перепишет запрос сам из MSSQL в MySql
Вот сравнение различных реализаций SQL
Для просмотра ссылки Войди или Зарегистрируйся
 
Как решить проблему ковертации бд?
После загрузки пишет error.
 
Назад
Сверху