Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 June 30

DB

Dmitriy Belkin in SqlCom.ru - Стиль жизни SQL
не обязательно речь о блокировках целых таблиц, может какие-то отдельные страницы, строки или еще что. Это я для примера
источник

A

Alex in SqlCom.ru - Стиль жизни SQL
Да, спасибо. правильнее было задать вопрос - как такое диагностировать)
источник

A

Andrey in SqlCom.ru - Стиль жизни SQL
сорри, тут для MS SQL чат
источник

C

CrazyDiamond in SqlCom.ru - Стиль жизни SQL
Господа, привет
Про MS Server Reporting Service тут вопрос будет уместен?
источник

C

CrazyDiamond in SqlCom.ru - Стиль жизни SQL
Я не нашёл способа как сделать так, что бы подписка отправляла отчёт только в том случае, если он не пустой, то есть данные выборки в БД есть, кроме - Data driven subscriptions.
Но как же так, должно же быть что то ещё, проще, чем выполнять запрос два раза.
источник

DN

Denis Novickiy in SqlCom.ru - Стиль жизни SQL
CrazyDiamond
Я не нашёл способа как сделать так, что бы подписка отправляла отчёт только в том случае, если он не пустой, то есть данные выборки в БД есть, кроме - Data driven subscriptions.
Но как же так, должно же быть что то ещё, проще, чем выполнять запрос два раза.
В самом запросе проверь, есть ли данные. Если нет - ошибку и отчет не сформируется
источник

C

CrazyDiamond in SqlCom.ru - Стиль жизни SQL
Denis Novickiy
В самом запросе проверь, есть ли данные. Если нет - ошибку и отчет не сформируется
А как это реализовать? у нас oracle
источник

C

CrazyDiamond in SqlCom.ru - Стиль жизни SQL
ну и завершать работу подписки ошибкой - такое себе
источник

DN

Denis Novickiy in SqlCom.ru - Стиль жизни SQL
CrazyDiamond
ну и завершать работу подписки ошибкой - такое себе
Понятия не имею, как в оракле кинуть ошибку в запросе. Найдете решение лучше - сообщите😉
источник

C

CrazyDiamond in SqlCom.ru - Стиль жизни SQL
Denis Novickiy
Понятия не имею, как в оракле кинуть ошибку в запросе. Найдете решение лучше - сообщите😉
на первый взгляд Data driven лучше, так как не оставляет ошибки и не усложняет основной запрос.
если я вас правильно понял, надо pl/sql блок исполнить в отчёте, а не sql код. SQL код не может выбросить ошибку.
источник

DN

Denis Novickiy in SqlCom.ru - Стиль жизни SQL
CrazyDiamond
на первый взгляд Data driven лучше, так как не оставляет ошибки и не усложняет основной запрос.
если я вас правильно понял, надо pl/sql блок исполнить в отчёте, а не sql код. SQL код не может выбросить ошибку.
Я ответил с учетом того, что запрос будет к SQL Server, в котором можно вызвать ошибку в запросе через Raiserror.
источник

C

CrazyDiamond in SqlCom.ru - Стиль жизни SQL
Denis Novickiy
Я ответил с учетом того, что запрос будет к SQL Server, в котором можно вызвать ошибку в запросе через Raiserror.
ну это наверное тоже TSQL
источник

C

CrazyDiamond in SqlCom.ru - Стиль жизни SQL
короче, нормального способа нету, насколько я понимаю из гугла
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
SQL Server Reporting Services

Нужно в отчёте смержить два датасета из разных источников, которые находятся на разных машинах и вообще разные СУБД. Пусть будут  dataset_1 и dataset_2.

Основные данные лежат dataset_1. Из dataset_2 выбирается значение с помощью SSRS функции Lookup по первичному ключу, который есть в обоих наборах. Тут сталкиваюсь с проблемой — я могу контролировать, сколько строк вернёт Dataset_1, подставляя параметр в limit, но из  dataset_2 тянутся все записи из таблицы, и только потом на уровне SSRS фильтруются по условию в  функции Lookup. В таблице миллионы записей, и когда я в  dataset_1 задаю получить только 100 первых записей, то dataset_2 всё равно возвращает миллионы строк, они тянутся по сети, и они все обрабатывается в оперативной памяти.

Вопрос: можно ли как-то сохранять максимальное и минимальное значения первичного ключа из набора dataset_1  в два отдельных параметра? я могу вывести их в два отдельных столбца и использовать оконные min(), max(). Чтобы значения из параметров подставить в where набора  dataset_2 — сделать запрос более селективным, не сканировать тяжёлую таблицу и  не тянуть это всё по сети?
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
пока писал вопрос, понял, что можно вместо параметра int для limit указывать явно два параметра минимального и максимального значения PK, и тогда проблема решится

но раз уж написал, интересно, можно ли сделать так как я сформулировал выше
источник

G

Galv in SqlCom.ru - Стиль жизни SQL
Добрый вечер! Как можно этот запрос написать без применения подзапроса?

SELECT COUNT(*) FROM org_type_on_related_genre WHERE genre_id = :deletedGenreId and org_type_id IN (SELECT org_type_id FROM org_type_on_related_genre GROUP BY org_type_id HAVING count(*) > 1

нужно получить количество строк, в которых genre_id равен искомому id и при этом org_type_id этой строчки в данной таблице не уникален
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Galv
Добрый вечер! Как можно этот запрос написать без применения подзапроса?

SELECT COUNT(*) FROM org_type_on_related_genre WHERE genre_id = :deletedGenreId and org_type_id IN (SELECT org_type_id FROM org_type_on_related_genre GROUP BY org_type_id HAVING count(*) > 1

нужно получить количество строк, в которых genre_id равен искомому id и при этом org_type_id этой строчки в данной таблице не уникален
а зачем?
источник

G

Galv in SqlCom.ru - Стиль жизни SQL
Gopneg
а зачем?
сказали переделать без подзапроса. ломаю голову(
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
это какое-то тестовое задание что ли? какой смысл в этой переделке?
источник

G

Galv in SqlCom.ru - Стиль жизни SQL
Gopneg
это какое-то тестовое задание что ли? какой смысл в этой переделке?
пилю проект учебный, лид сказал то же самое только без подзапроса сделать, учебы ради
источник