#sql #sql-server
#sql #sql-сервер
Вопрос:
dateTable
Date Revenue
1-1-11 0.00
2-1-11 10.00
3-1-11 10.00
4-1-11 0.00
5-1-11 10.00
6-1-11 10.00
7-1-11 0.00
8-1-11 0.00
............................
............................
userTable
Date count
2-1-11 2
4-1-11 3
Я хочу обновить доход datetable из данных UserTable со следующим условием:
Для второго подсчета доход будет обновляться (к 10.00) дважды в соответствии с увеличением даты использования на 2 дня.
То есть для даты 2-1-11 и количества 2 в usertable доход от datetable будет равен
Date: Revenue
.......................................
4-1-11(2-1-11 2 days) 0.00 10.00
6-1-11(2-1-11 4 days) 10.00 10.00
.......................................
Вывод:
Date Revenue
1-1-11 0.00
2-1-11 10.00
3-1-11 10.00
4-1-11 0.00 10.00
5-1-11 10.00
6-1-11 10.00 10.00 10.00
7-1-11 0.00
8-1-11 0.00 10.00
.............................
..............................
Как я могу это сделать?
Комментарии:
1. Извините, но я действительно не понимаю вопроса — у 3-1 дата больше 4, так чего же вы ожидаете от этой даты? Где пример строки для 12-1?
2. Вопрос действительно не имеет смысла. Пожалуйста, опубликуйте пример результатов, которые вы хотите. Помогите нам понять, что такое входные данные и какой запрос вы используете сейчас. Ваши данные находятся выше базовых данных или это пример того, как все должно быть?
3. Пожалуйста, объясните логику лучше. Почему
6-1-11
строка обновляется, когда она вообще не отображается вuserTable
?
Ответ №1:
SQL Server имеет очень обширный синтаксис MERGE
инструкции. Возможно, вы захотите ознакомиться с этим:
http://technet.microsoft.com/en-us/library/bb510625.aspx
Это должно дать вам «направление», как вы просили.
Комментарии:
1. спасибо за ваш ответ. но я должен работать с sql server 2005, где слияние, я думаю, не введено.
2. Хорошо, это правда. Может быть, эта статья поможет вам? sqlserver-tips.blogspot.com/2006/09 /…