tsql- все статьи тега


Как выбрать товар, который имеет максимальную цену для каждой категории?

Ниже приведена моя таблица, содержащая такой элемент, как: ProductId ProductName Category Price 1 Tiger Beer $12.00 2 ABC Beer $13.99 3 Anchor Beer $9.00 4 Apolo Wine $10.88 5 Randonal Wine $18.90 6 Wisky Wine $30.19 7 Coca Beverage $2.00 8 Sting Bever ...

Удаление завершающих нулей с помощью sql [дубликат]

Возможный дубликат:удаление конечных нулей из десятичной системы счисления в SQL Server Я пытаюсь использовать функцию round и не показывать ни одного из конечных нулей, но все равно получаю некоторые нули в конце. Я предполагаю получить 10.4, но получаю что-то вроде этого: 10.400000 Вот мой sql: select round(AVG(CAST(k.TotalNumberDays AS numeric(12,2))),2) TotalNumber Как я могу удалить конечные нули здесь? Мне нужно показать только 10.4. ...

Sql Server: Есть ли способ группировать записи по датам на основе дат других записей?

У меня есть таблица, в которой есть события, и мне нужно найти повторяющиеся события. Проблема в том, что события, происходящие в течение 1 секунды друг от друга, считаются дубликатами. Итак, если моя таблица имеет эти значения id | var1 | var2 | var3 | date 1 | 1 | 2 | 3 | 2001-01-01 01:01:01.456 2 | 1 | 2 | 3 | 2001-01-01 01:01:02.234 3 | 1 | 2 | 3 | 2001-01-01 01:01:04.789 Записи 1 и 2 считаются дубликатами, потому что они находятся в пределах одной секунды, ...

TSQL не альтернативный курсор, чтобы ускорить мой запрос

Row Status Time 1 Status1 1383264075 2 Status1 1383264195 3 Status1 1383264315 4 Status2 1383264435 5 Status2 1383264555 6 Status2 1383264675 7 Status2 1383264795 8 Status1 1383264915 9 Status3 1383265035 10 Status3 1383265155 11 Status2 1383265275 12 Status3 1383265395 13 Status1 1383265515 14 Status1 1383265535 15 Status2 1383265615 Столбец [Time] содержит время POSIX Я хочу иметь возможность вычислить количество секунд, в течение которых данный [St ...

Способы проверки запросов T-SQL?

У меня есть доступ к базе данных Access, и в этой базе данных находятся поля, заполненные запросами TSQL. Эти запросы обрабатываются T-SQL на сервере. Поэтому, когда я пишу эти SQL-запросы и помещаю их в поле для использования конечным сервером, я не могу проверить синтаксис/etc. Я мог бы создать временный запрос в этой базе данных Access, но это не тот же самый язык запросов. Например, Access будет правильно использовать IIF , но TSQL не будет (вместо этого будет CASE). У меня нет прямой досту ...

Работа с параметром SqlXml в методе SQLCLR

Это SQL CLR, я просто пытаюсь создать функцию, которая получает XML из SQL, а затем получает значение для определенного узла и возвращает его: [SqlFunction] public static SqlString FnGetQuoteNumber(XmlDocument xmlDoc) { string nodeValue = null; xmlDoc.Load(xmlDoc.ToString()); XmlNode node = xmlDoc.DocumentElement.SelectSingleNode("//Identifier[@name='Item1']"); if (xmlDoc.DocumentElement != null) { nodeValue ...

SQL left join с несколькими строками в одну строку

В основном, у меня есть две таблицы, таблица A содержит фактические элементы, которые я хочу получить, а таблица B используется для языковых переводов. Так, например, таблица А содержит фактическое содержание. Всякий раз, когда текст используется в таблице, вместо хранения фактических значений varchar сохраняются идентификаторы, которые относятся обратно к тексту, хранящемуся в таблице B. Это позволяет мне, добавив столбец languageID в таблицу B, иметь несколько переводов для одной и той же стр ...

Ошибка преобразования при преобразовании значения varchar в int

Я получаю ошибку с тем, что должно быть простым запросом для вставки данных. Я уже искал, но, хоть убей, не могу понять, что происходит. Вот мой SQL: IF OBJECT_ID('settings') IS NOT NULL DROP TABLE [settings] CREATE TABLE [settings] ( [id] [bigint] IDENTITY(1,1) NOT NULL PRIMARY KEY, [tenant_id] [bigint] NOT NULL, [name] [varchar](32) NOT NULL, [value] [varchar](255) NOT NULL ) INSERT INTO settings (name, value, tenant_id) VALUES ('from_email' , '', ...

Как переписать этот запрос, чтобы не использовать предложение union

Как переписать этот запрос, чтобы не использовать предложение UNION (UNION ALL): SELECT c FROM a UNION SELECT c FROM b Ожидаемый результат (набор записей должен быть одинаковым): SELECT c FROM .... ...

Выберите для XML AUTO и возвращайте типы данных

Во время игры с sys.dm_exec_describe_first_result_set я добираюсь до этой точки: CREATE TABLE #tab(col INT, x XML ); INSERT INTO #tab(col,x) VALUES (1,NULL), (2,NULL), (3,'<a>x</a>'); SELECT 'Simple XML' AS description, name, system_type_name FROM sys.dm_exec_describe_first_result_set( N'SELECT col FROM #tab FOR XML AUTO', NULL, 0) UNION ALL SELECT 'Wrapped with subquery', name, system_type_name FROM sys.dm_exec_describe_first_result_set( N'SELECT(SELECT col ...

MSSQL создает и условно увеличивает столбец

Я получаю некоторые данные (в таблицу # temp), которые имеют некоторый логический порядок. Когда я извлекаю данные, я хотел бы добавить новую последовательность / счетчик, который увеличивается только при выполнении определенных условий в других полях. В идеале что-то вроде этого: DECLARE @counter int = 0; SELECT Item, Date, Event, @counter = @counter + (CASE WHEN Event = 'Something' THEN 1 ELSE 0 END) AS EVENT_SEQ INTO #tempTable FROM MyData ORDER BY Item, Da ...

Использование оператора CASE с isnull и else

У меня есть столбец [Color], который содержит 'Black', 'Red', NULL, 'WW','RR' Я хочу иметь колонку, которая должна иметь if color black then 'B' if color red then 'r' if color is Null then 'Empty' for all other entries 'n/a' Я использую follwoing, но он показывает ошибку SELECT Name, CASE color WHEN 'black' THEN 'b' WHEN 'red' THEN 'r' WHEN ISNULL(color, 'empty') else 'n/a' END AS Color_code FROM SalesLT.Product; ...

INT vs Unique-идентификатор поля ID в базе данных

Я создаю новую базу данных для веб-сайта, используя SQL Server 2005 (возможно, SQL Server 2008 в ближайшем будущем). Как разработчик приложений, я видел много баз данных, которые используют integer (или bigint и т. д.) для поля ID таблицы, которое будет использоваться для связей. Но в последнее время я также видел базы данных, которые используют unique identifier (GUID) для поля ID. Мой вопрос в том, есть ли у одного преимущество перед другим? Будут ли поля integer быстрее использоваться для ...

Передача нескольких значений для одного параметра SQL

У меня есть CheckBoxList, где пользователи могут выбрать несколько элементов из списка. Затем мне нужно передать эти значения в мою хранимую процедуру, чтобы их можно было использовать в условии WHERE, например: WHERE ID IN (1,2,3) Я попытался сделать это так, что его параметр nvarchar и я передаю строку 1,2,3 с: WHERE ID IN (@IDs) Но это вернуло следующую ошибку: Conversion failed when converting the nvarchar value '1,2,3' to data type int Любая помощь была бы очень признательна! ...

SQL повышен до степени ошибки " произошла недопустимая операция с плавающей запятой."

У меня есть этот код declare @termtomonths float set @termtomonths=120/365.00 set @termtomonths= round(@termtomonths,2,1)*12 select power(1-(1+0.11/12.00), -3.84) Когда я запускаю его, он возвращает ошибку Msg 3623, Level 16, State 1, Line 6 An invalid floating point operation occurred. Попробуйте эту формулу в MS EXCEL, и она работает =1-(1+0.11/12)^-3.84 Ожидаемый результат 0.034432865 Как я могу преобразовать эту формулу excel в Формулу sql? Спасибо ...

Как включить автоматическое определение области транзакций в среде SQL Server Management Studio?

Я привык работать с такими инструментами, как Toad или PL/Sql Developer для Oracle, и каждый оператор SQL, который я запускаю в окне запроса, автоматически запускается в области действия trasaction. Таким образом, если моя инструкция SQL не верна, или даже если я что-то пропустил в скрипте SQL, я могу откатиться, только нажав на кнопку в пользовательском интерфейсе. Если все сработало, как ожидалось, я могу нажать на другую кнопку для фиксации текущей транзакции. На тех инструментах, которые я у ...

Кластеризованный индекс на временной таблице

Я пытаюсь оптимизировать процедуру, которая имеет следующий код: CREATE TABLE #t1 (c1 int, c2 varchar(20), c3(varchar(50)...) CREATE CLUSTERED INDEX ix_t1 ON #t1(c3) ON [PRIMARY] Я хотел улучшить это, переместив кластеризованный индекс в объявление таблицы (более удобное кэширование), но c3 не является уникальным, поэтому это не работает: CREATE TABLE #t1 (c1 int, c2 varchar(20), c3 varchar(50)..., UNIQUE CLUSTERED (c3)) Существует ли способ объявить кластер, который не является уникаль ...

Службы SSRS Microsoft Reporting services-возможные проблемы при создании отчета из-за разрешений пользователя?

Я бьюсь головой о странную проблему, которая у меня возникает при создании отчетов, это сценарий: Создал отчет с двумя изображениями внутри, и оба являются" внешними " ссылками с двумя различными параметрами (img01 и img02 оба текста), которые указывают на расположение изображения в базе данных SSRS следующим образом: Img01 - / images / img01.формат jpg img02 - / документы / изображения / img02.jpg Для параметра img01 определено значение по умолчанию, содержащее "link", для параметра img02 ...

Как правильно реализовать quotename в SQL Server?

Справочная Информация: У меня есть хранимая процедура, которая заполняет отчет SSRS. Отчет SSRS запускается и экспортируется в формате CSV. Затем он открывается как текстовый файл и выполняется через приложение поставщика 3-х сторон. Выходные данные учебника должны выглядеть следующим образом: lid, status, i_flag,Count, pDate, iDate 62558633,"Text Value","08/16",11,"08/16","08/16" 78013526,"Text Value","",,"08/16""08/16" Мои результаты выглядят так: lid, status, i_flag, ...

Типичные представления модели хранилища данных звездной схемы Кимбалла выполнимы? и как кодировать ген

У меня есть хранилище данных, содержащее типичные схемы звезд и целую кучу кода, который делает такие вещи (очевидно, намного больше, но это иллюстративно): SELECT cdim.x ,SUM(fact.y) AS y ,dim.z FROM fact INNER JOIN conformed_dim AS cdim ON cdim.cdim_dim_id = fact.cdim_dim_id INNER JOIN nonconformed_dim AS dim ON dim.ncdim_dim_id = fact.ncdim_dim_id INNER JOIN date_dim AS ddim ON ddim.date_id = fact.date_id WHERE fact.date_id = @date_id GROUP BY cdim.x ,dim.z Я думаю ...