SELECT date, ROUND(sum(spend),2) spend
FROM `reklama` WHERE category = 'одеяла' AND (MONTH(date) = MONTH(CURRENT_DATE()) OR MONTH(date) = MONTH(CURRENT_DATE() - INTERVAL 1 MONTH))
GROUP BY date
ORDER BY date ASC
В этом запросе играет ключевую роль, функция
MONTH()
- предназначена для того, чтобы извлекать месяц из даты, как раз то, что нам необходимо. И конечно, помним о том, чтобы увидеть все даты, необходимо сделать группировку
GROUP BY date,
без этой функции просто будет показана одна дата(одна строка).#Sql, #MySql
Есть хорошая программа для просмотра данных в Б.Д. heidisql и хочется использовать её для работы с локальной базой к примеру: (localdb)\MSSQLLocalDB используя SQL Server.
Но, просто подключиться к ней, не так уж и просто, для этого необходимо сделать ряд действий:
1. Узнаём куда подключаемся:
Но, просто подключиться к ней, не так уж и просто, для этого необходимо сделать ряд действий:
1. Узнаём куда подключаемся:
3. Вопрос. Как получить правильный адрес хоста, чтобы подключиться к Б.Д.?
а). Запускаем "cmd"
б). Вбиваем:
где: sqllocaldb - база
s - старт сервера(обязательно)
в). Вбиваем:
выводятся ряд строк, но необходима только одна:
Вот это и есть адрес хоста, к которому необходимо подключиться.
#Sql, #MySql
а). Запускаем "cmd"
б). Вбиваем:
sqllocaldb s
где: sqllocaldb - база
s - старт сервера(обязательно)
в). Вбиваем:
sqllocaldb i MSSQLLocalDB
выводятся ряд строк, но необходима только одна:
Имя канала экземпляра: np:\\.\pipe\LOCALDB#F8B4165B\tsql\query
Вот это и есть адрес хоста, к которому необходимо подключиться.
#Sql, #MySql
string about = string.Empty;
try
{
1. Делаем проверку на наличия необходимо тега с необходимым содержанием. Если, этого тега нет - то, будет Исключение и Пропуск.
about = ZennoPoster.Parser.ParseByXpath(tab.DomText, "//div", "innerHtml").ToList().Where(s => s == "About").First();
2. Проходим по всем блокам тега 'div', чтобы получить атрибуты outerHtml и innerHtml.
foreach (string about_ in ZennoPoster.Parser.ParseByXpath(tab.DomText, "//div", "outerHtml").ToList())
{
try
{
3. Получаем необходимый блок тега 'div' с innerHtml == "About".
about = ZennoPoster.Parser.ParseByXpath(about_, "//div", "innerHtml").ToList().Where(s => s == "About").First();
4. Получаем необходимый блок тега 'div' , только с outerHtml к примеру:
"<div class="biGQs _P fiohW tyUdl uuBRH">About</div>"
(может быть любой другой, у нас нет жёсткой привязки, к атрибуту outerHtml)
about = ZennoPoster.Parser.ParseByXpath(about_, "//div", "outerHtml").ToList().Where(s => s.Contains(">About<")).First();
5. Т.к. необходимый Текст находится в необходимо блоке тега 'span', то его можно получить благодаря регулярному выражению, где Первая Часть регулярного выражения, это Содержания тега 'outerHtml'
about = Regex.Match(tab.DomText, about + ".*?</span>").Value;
6. Чистим от мусора.
about = about.Replace(">About<", "><");
about = Regex.Replace(about, "<.*?>", "");
}catch
{
//
}
}
}catch
{
//
}
Сам код:
#zennoposter, #парсинг
string about = string.Empty;
try
{
about = ZennoPoster.Parser.ParseByXpath(tab.DomText, "//div", "innerHtml").ToList().Where(s => s == "About").First();
foreach (string about_ in ZennoPoster.Parser.ParseByXpath(tab.DomText, "//div", "outerHtml").ToList())
{
try
{
about = ZennoPoster.Parser.ParseByXpath(about_, "//div", "innerHtml").ToList().Where(s => s == "About").First();
about = ZennoPoster.Parser.ParseByXpath(about_, "//div", "outerHtml").ToList().Where(s => s.Contains(">About<")).First();
about = Regex.Match(tab.DomText, about + ".*?</span>").Value;
about = about.Replace(">About<", "><");
about = Regex.Replace(about, "<.*?>", "");
}catch
{
//
}
}
}catch
{
//
}
#zennoposter, #парсинг