
Vladislav
13.08.2018
08:34:03
это все равно селект

Ilia
13.08.2018
09:01:44

Al
13.08.2018
09:03:51

Ilia
13.08.2018
09:04:54
Пипал по MSSQLServer, утилита SQLCMD, у неё есть параметр
-S [protocol:]server[instance_name][,port]
Можно тут или ещё как-то задать ей не прямой адрес, а ссылку на ODBC DSN , где описано соединение?

Google

Ilia
13.08.2018
09:05:06
Или чатик по MSSQL напомните.

VlIvYur
13.08.2018
09:06:27

Ilia
13.08.2018
09:10:00
Спсб


Nikita
13.08.2018
10:22:58
Всем привет, не могу разобратся.
Есть два запроса
-- Собирает информацию по заказам с мобильных устройств
insert into orders_mobile_m
SELECT cs.store_id, cs.name, count(sfo.entity_id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on sfo.store_id = cs.store_id
WHERE sfo.status IN ('reserved', 'complete', 'collect')
AND sfo.created_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
AND sfo.app_source in (@android, @ios)
GROUP BY cs.name, month(sfo.created_at);
-- Собирает информацию по заказам c рекламы
insert into orders_UTM_m
SELECT cs.store_id, cs.name, count(id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on cs.store_id = sfo.store_id
JOIN magdv_utm u on sfo.entity_id = u.order_id
WHERE u.action = 'order'
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
GROUP BY cs.name, month(sfo.created_at);
Для меня важно чтобы были все строки из core_store cs
В первом запросе так и работает. А во втором 2 записи из core_store не достаються, так как связанных с ними записей нет. Как подправить второй запрос?


Ilia
13.08.2018
10:24:17
Всем привет, не могу разобратся.
Есть два запроса
-- Собирает информацию по заказам с мобильных устройств
insert into orders_mobile_m
SELECT cs.store_id, cs.name, count(sfo.entity_id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on sfo.store_id = cs.store_id
WHERE sfo.status IN ('reserved', 'complete', 'collect')
AND sfo.created_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
AND sfo.app_source in (@android, @ios)
GROUP BY cs.name, month(sfo.created_at);
-- Собирает информацию по заказам c рекламы
insert into orders_UTM_m
SELECT cs.store_id, cs.name, count(id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on cs.store_id = sfo.store_id
JOIN magdv_utm u on sfo.entity_id = u.order_id
WHERE u.action = 'order'
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
GROUP BY cs.name, month(sfo.created_at);
Для меня важно чтобы были все строки из core_store cs
В первом запросе так и работает. А во втором 2 записи из core_store не достаються, так как связанных с ними записей нет. Как подправить второй запрос?
GROUP BY не по феншую (стандарту) в первом


Nikita
13.08.2018
10:25:35
Ну это планировался как второй вопрос)

Ilia
13.08.2018
10:25:44

Nikita
13.08.2018
10:26:10
не феншуйно функцию month юзать в group?

Ilia
13.08.2018
10:27:00

Nikita
13.08.2018
10:28:30
@MasterZiv тогда это так получается?
GROUP BY cs.store_id, cs.name, month(sfo.created_at);

Ilia
13.08.2018
10:29:38


Nikita
13.08.2018
10:30:06
@MasterZiv
-- Собирает информацию по заказам с мобильных устройств
insert into orders_mobile_m
SELECT cs.store_id, cs.name, count(sfo.entity_id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on sfo.store_id = cs.store_id
WHERE sfo.status IN ('reserved', 'complete', 'collect')
AND sfo.created_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
AND sfo.app_source in (@android, @ios)
GROUP BY cs.store_id, cs.name, month(sfo.created_at);
-- Собирает информацию по заказам c рекламы
insert into orders_UTM_m
SELECT cs.store_id, cs.name, count(id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
right JOIN sales_flat_order sfo on cs.store_id = sfo.store_id
left join magdv_utm u on sfo.entity_id = u.order_id
WHERE u.action = 'order'
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
GROUP BY cs.store_id, cs.name, month(sfo.created_at);

Google


Ilia
13.08.2018
10:31:18
@MasterZiv
-- Собирает информацию по заказам с мобильных устройств
insert into orders_mobile_m
SELECT cs.store_id, cs.name, count(sfo.entity_id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on sfo.store_id = cs.store_id
WHERE sfo.status IN ('reserved', 'complete', 'collect')
AND sfo.created_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
AND sfo.app_source in (@android, @ios)
GROUP BY cs.store_id, cs.name, month(sfo.created_at);
-- Собирает информацию по заказам c рекламы
insert into orders_UTM_m
SELECT cs.store_id, cs.name, count(id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
right JOIN sales_flat_order sfo on cs.store_id = sfo.store_id
left join magdv_utm u on sfo.entity_id = u.order_id
WHERE u.action = 'order'
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
GROUP BY cs.store_id, cs.name, month(sfo.created_at);
SELECT cs.store_id, cs.name, count(sfo.entity_id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
...
GROUP BY cs.store_id, cs.name, month(sfo.created_at);Где ты тут видишь в списке вывода month(sfo.created_at) ?


Nikita
13.08.2018
10:31:39
date_format(sfo.created_at, @date_format)

Ilia
13.08.2018
10:31:56
Это другое выражение.
Либо
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at)
либо
Либо
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at)
либо
SELECT cs.store_id, cs.name, count(sfo.entity_id), avg(sfo.base_grand_total), month(sfo.created_at)

Nikita
13.08.2018
10:33:54
Понял
поправил по второму варианту

Ilia
13.08.2018
10:36:45
Если
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at)
то это наверное самы бредовый вариант

Nikita
13.08.2018
10:37:27
@MasterZiv
SELECT cs.store_id, cs.name, count(id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on cs.store_id = sfo.store_id
LEFT JOIN magdv_utm u on sfo.entity_id = u.order_id
WHERE u.action = 'order'
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at);
Вот тут я все еще теряю две записи из core_store так как в magdv_utm и sales_flat_order нет связанных с ними записей


Ilia
13.08.2018
10:38:45
@MasterZiv
SELECT cs.store_id, cs.name, count(id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on cs.store_id = sfo.store_id
LEFT JOIN magdv_utm u on sfo.entity_id = u.order_id
WHERE u.action = 'order'
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at);
Вот тут я все еще теряю две записи из core_store так как в magdv_utm и sales_flat_order нет связанных с ними записей
А нахера ж ты в WHERE условия пишешь на LEFT таблицы?

Nikita
13.08.2018
10:38:46
@MasterZiv avg не надо в group by вроде
http://oracleplsql.ru/mysql-function-avg.html

Ilia
13.08.2018
10:39:03


Nikita
13.08.2018
10:39:27
Либо
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at)
либо
Либо
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at)
либо
SELECT cs.store_id, cs.name, count(sfo.entity_id), avg(sfo.base_grand_total), month(sfo.created_at)
Третий вариант)
А нахера ж ты в WHERE условия пишешь на LEFT таблицы?
Так этож, надо мне так.
Вот смотри
SELECT cs.store_id, cs.name, count(sfo.entity_id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on sfo.store_id = cs.store_id
WHERE sfo.status IN ('reserved', 'complete', 'collect')
AND sfo.created_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
AND sfo.app_source in (@android, @ios)
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at);
Тут работает как надо.

Ilia
13.08.2018
10:40:50

Nikita
13.08.2018
10:41:06
Слепой под вечер.
Прощения просим-с

Stanislav
13.08.2018
10:41:36

Vladislav
13.08.2018
10:42:17

Stanislav
13.08.2018
10:43:04

Nikita
13.08.2018
10:43:04
так вот, как заставить то вот этот запрос
```
SELECT cs.store_id, cs.name, count(id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on cs.store_id = sfo.store_id
LEFT JOIN magdv_utm u on sfo.entity_id = u.order_id
WHERE u.action = 'order'
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at);
```
Вернуть ВСЕ записи свои, даже если в join'еных таблицах инфы нет

Google

Vladislav
13.08.2018
10:44:06

Ilia
13.08.2018
10:44:44
так вот, как заставить то вот этот запрос
```
SELECT cs.store_id, cs.name, count(id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on cs.store_id = sfo.store_id
LEFT JOIN magdv_utm u on sfo.entity_id = u.order_id
WHERE u.action = 'order'
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at);
```
Вернуть ВСЕ записи свои, даже если в join'еных таблицах инфы нет
Я тебе уже написал


Nikita
13.08.2018
10:51:31
Nikita Rassamakhin, [13.08.18 17:50]
@MasterZiv
Пока не понимаю.
Проблема в чем, у меня есть core_store это города
magdv_utm хранит ссылку на заказ
sales_flat_order вообще все заказы с id города в котором был произведен
Мне надо достать все заказы сделанные по рекламе
WHERE u.action = 'order'
и в строго заданом промежутке
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
посчитать средний ценник заказов
avg(sfo.base_grand_total)
и их количество
count(u.id)
И для городов в которых не было заказов проставить нули
Так как таблицы 3
я взял ту чьи данные должны быть в полном обьеме core_store и приджойнил остальные


Ilia
13.08.2018
10:52:44
так вот, как заставить то вот этот запрос
```
SELECT cs.store_id, cs.name, count(id), avg(sfo.base_grand_total), date_format(sfo.created_at, @date_format)
FROM core_store cs
LEFT JOIN sales_flat_order sfo on cs.store_id = sfo.store_id
LEFT JOIN magdv_utm u on sfo.entity_id = u.order_id
WHERE u.action = 'order'
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
GROUP BY cs.store_id, cs.name, date_format(sfo.created_at, @date_format), month(sfo.created_at);
```
Вернуть ВСЕ записи свои, даже если в join'еных таблицах инфы нет
Ты либо
LEFT JOIN magdv_utm u on sfo.entity_id = u.order_id
и все записи,
либо
WHERE u.action = 'order'
AND u.updated_at BETWEEN date_sub(curdate(), INTERVAL 3 MONTH)
AND curdate()
и фильтр.

Nikita
13.08.2018
10:52:45
для других запросов где join'ятся только sales_flat_order это прокотило
Понял, спасибо.

Terminator
13.08.2018
13:07:21
Jeka Krivoruchko будет жить. Поприветствуем!

Sergey
13.08.2018
13:08:40

Frank
13.08.2018
15:16:56
Эм... Был у меня когда-то в одном СМИ коллега по имени Евгений Криворучко. Так что не исключено, что и нет))
На метро Калужская оно располагалось)

Al
13.08.2018
15:24:41

Frank
13.08.2018
15:25:03
Да мы довольно мало вместе поработали, он ушел быстро

Al
13.08.2018
15:30:32
Тут он тоже ушел быстро

Frank
13.08.2018
15:30:49
)))

Михаил Власов
13.08.2018
16:26:34
У мну был коллега Косоруков.
Норм.

Человек
13.08.2018
20:04:53
Здравствуйте всем. Как мне можно исключить некоторые строки в SQL? У меня есть БД aqua и таблица fill, в ней 5 колон следующего вида: CREATE TABLE fill (name varchar, value varchar, clower int, cup int, bsed text). Я не могу сделать SELECT value, name FROM fill ибо мне выдаст ошибку так как имена name, value зарезервированы, но могу сделать SELECT * FROM Fill. Теперь вопрос как мне исключить колоны clower, cup, bsed ?

ко?TEXHIK
13.08.2018
20:10:12
Используй кавычки

Google

Admin
ERROR: S client not available

ко?TEXHIK
13.08.2018
20:10:47
Select "col_name1", "col_name2"...

Igor
13.08.2018
20:10:57
Здравствуйте всем. Как мне можно исключить некоторые строки в SQL? У меня есть БД aqua и таблица fill, в ней 5 колон следующего вида: CREATE TABLE fill (name varchar, value varchar, clower int, cup int, bsed text). Я не могу сделать SELECT value, name FROM fill ибо мне выдаст ошибку так как имена name, value зарезервированы, но могу сделать SELECT * FROM Fill. Теперь вопрос как мне исключить колоны clower, cup, bsed ?
зарезервинованные имена возьми в скобки квадратные, select [name] и далее по тексту

Человек
13.08.2018
20:26:56

Igor
13.08.2018
20:27:21

Человек
13.08.2018
20:27:36
SELECT [name], [value] FROM FROM fill
А при SELECT * FROM fill все работает

Igor
13.08.2018
20:29:37
а что за бд? в MS SQL так прокатывает

Человек
13.08.2018
20:45:36
нужны было убрать FROM

Ilia
13.08.2018
20:46:11
SELECT "name", "value" FROM "fill"

Igor
13.08.2018
20:46:36

Vladislav
14.08.2018
05:37:18

Terminator
14.08.2018
06:38:54
Anton Dereev будет жить. Поприветствуем!

Andruha
14.08.2018
08:15:22
в yii2 при описании поля в бд в миграции можно выбрать и float, и decimal - что выбирать для postgresql?

Al
14.08.2018
08:16:59

Ilia
14.08.2018
08:18:18

Andruha
14.08.2018
08:19:08

Google

Ilia
14.08.2018
08:20:15

Andruha
14.08.2018
08:20:19
все, коллеги, вопрос снят, для денег decimal
спасибо

Ilia
14.08.2018
08:21:51

Andruha
14.08.2018
08:22:23

Ilia
14.08.2018
08:22:45
decimal

Konstantin
14.08.2018
08:38:13
Коллега купил :)

Ilia
14.08.2018
08:43:45
Главное что внутри!