Вопросы с тегами [sql]

1

голосов
2

ответ
40

Просмотры

Когда кнопка Delete хит, изображение должно быть удалено из таблицы, сообщение об ошибке, показывая вместо

У меня есть галерея, где я хочу, чтобы пользователь смог обновить название изображения и удалять изображение, если они пожелают. Мое обновление названия код работает, как ожидалось, и я предположил, удаление коды не будет далеко от того же.
qwpozxmn
0

голосов
1

ответ
31

Просмотры

SQL Server - Вставить 2M + записи в SQL скрипт с 7000 строк на вставке

Я ищу любое предложение для обхода 1000 строк на пределе вставки в SQL Server. У меня есть MySQL скрипт дампа, который имеет несколько 100 строк, каждая строка представляет собой вставку заявление, которое содержит прибл 7000 строк. Я не могу вставить, что непосредственно в SQL Server, из-за лимита в 1000 строк на вставке. Есть ли «легкий» обходной путь или только один из способов является проблемно идентификации строк и создавать вставки для каждой строки?
Daniel Hanczyc
3

голосов
2

ответ
49

Просмотры

Как я могу получить лучшую производительность по статье накидной на T-SQL

У меня есть три таблицы. Каждая таблица содержит более 3M строк. Я бегу следующий код: SELECT * FROM (SELECT col_1, col_2, col_3, [дата], 1 как тип ОТ table_1 СОЕДИНЕНИЕ ВЫБОР col_1, col_2, col_3, [дата], 2 как тип ОТ table_2 СОЕДИНЕНИЕ ВЫБОР col_1, col_2, col_3, [дата], 3, как тип из table_3) А.С. ТБ ТБ. [дата] между (датой_начал) И (дата_окончания) ORDER BY [дата] DESC OFFSET п строк FETCH СЛЕДУЮЩЕГО т строк ТОЛЬКО Но когда я получить большой интервал дат прогона запроса медленнее , Например: Когда я получаю 2019-01-01 и 2019-04-01 интервал запроса запустить около 13-14 секунд: Этот результат очень плохо. Я хочу, чтобы получить результат в течение 1 секунды. Что я могу сделать?
0

голосов
0

ответ
11

Просмотры

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

Тест DDL с КТР в качестве (выберите '0001' ID, 1 InputValue, 'Кол-во * 2; Кол-во * 5' Формулы объединение всех выберите '0002' ID, 2 InputValue, 'Кол-во + 4; Кол-во / 5' Формулы) выберите * в Т от КТР --query данных ID, InputValue, формулы 0001, 1, Кол-во * 2; Кол-во * 5 0002, 2, Кол-во + 4; Кол-во / 5 Ожидаемое вызов SomeFunction или SQLQuery получить результат ниже ID, InputValue, Формулы, Qty1, Qty2 0001, 1, Кол-во * 2; Кол-во * 5, 2, 5 0002, 2, Кол-во + 4; Кол-во / 5, 6, 0,4 Логика формула разрезается; InputValue использует первую формулу для расчета поля qty1 InputValue использует вторую формулу для вычисления поля qty2 My Test В настоящее время мое решение заключается в использовании программирования C #, чтобы решить эту проблему, но производительность имеет большую проблему, когда данные более чем 100000, используя (вар сп = Соединение) {cn.Open (); вар Данные = cn.Query (@»с КТР в качестве (выберите '0001' ID, 1 InputValue, 'Кол-во * 2; Кол-во * 5' Формулы объединение всех выберите '0002' ID, 2 InputValue, 'Кол-во + 4; Кол-во / 5' Формулы) выберите * в #T из КТР, выберите * от #T; «); Результат переменная = datas.Select (с => {вар обр = (s.Formulas как строка) .split ( ';'); вар qtyFor = обр [0] .Надеть ( "Кол-во", Convert.ToString (s.InputValue )); вар qty1For = обр [1] .Надеть ( "Кол-во", Convert.ToString (s.InputValue)); вар кол-во = новый DataTable () Вычислить (qtyFor, string.Empty). вар qty1 = новый DataTable () Вычислить (qty1For, string.Empty). возвращает новый {s.ID, s.InputValue, s.Formulas, Кол-во = кол-во, Qty1 = qty1}; }); ЕЫпе (результат); / * Результат: идентификатор InputValue, Формулы, Qty1, Qty2 0001, 1, Кол-во * 2; Кол-во * 5, 2, 5 0002, 2, Кол-во + 4; Кол-во / 5, 6, 0,4 * /} Интернет Тест Ссылка Я знает, что структура таблицы странно, но это старая система, без исходного кода
IT WeiHan
1

голосов
2

ответ
844

Просмотры

Как я могу бросить ошибку, если параметр равен нулю или 0?

У меня есть эта хранимая процедура: CREATE PROCEDURE [DBO] [get_test_status] @CreatedBy INT OUTPUT, @TestStatusId INT OUTPUT, @UserTestId INT, INT @UserId AS Как я могу бросить ошибка, если параметр @UserId является нулевым или нулевым.? Вот что я пытался, но он дает ошибку синтаксиса: IF (@UserId = 0 ИЛИ @UserId IS NULL) БРОСИТЬ 70001, «UserId: Не может быть нулевым или нулевым», 1
Alan2
0

голосов
1

ответ
24

Просмотры

Как выполнить запрос с большим количеством данных?

Я пытаюсь выполнить запрос на XAMPP MySQL. У меня есть 2 таблицы. Первая таблица имеет около 30k строк, каждая строка является специфическим ы. (Ы это номер, присвоенный продукту) Вторая таблица имеет 100k строк. Он имеет все данные для каждого SKU. Моя цель состоит в том, чтобы собрать все данные для каждого SKU из первой таблицы. Это то, что я сделал до сих пор: выберите v.sku, t.TTC_TYP_ID, t.CAR_BRAND, t.CAR_MODEL, t.CAR_TYP, t.CAR_BODY, t.CAR_OF_YEAR, t.CAR_TO_YEAR, t.CAR_KW, t.CAR_PM, т .CAR_CC, t.ART_NAME, t.ART_GROUP, t.PARTS_INFO, t.TERMS_OF_USE, t.ART_CROSS из volvo_skus против присоединиться к truckpartstest т на v.sku = t.oe_number Я попытался соединить v.SKU и t.oe_number, потому что они то же самое, только другое имя для столбца. Это все хорошо, если я запускаю этот скрипт с небольшим количеством данных. Но когда я пытаюсь запустить этот скрипт с реальным количеством данных, XAMPP показывает ' Loading»бар и ничего не происходит. Любые идеи, как я могу это исправить?
Sigitas
0

голосов
1

ответ
18

Просмотры

Копирование выбора данных из одной таблицы в другую

Я одну таблицу под названием «snapshot_history». Эта таблица записывает каждое действие, блок делает (Emergency Vehicle). Однако эта таблица чистки на динамометрические 30 дней. (Есть так много движений, что было бы в течение года максимума из пространства на сервере) Тем не менее, мне нужно некоторые из этой истории, чтобы быть бессрочными и не очищать. Система не моя, так что я не могу изменить систему. Каждую ночь в 2 часа ночи я хочу, чтобы скопировать изменения из «snapshot_history» таблицы. Как я могу это сделать? Я знаю, как вставить и все это, но проблема заключается в таблице FROM удаляется на период прокатки 30 дней. ВСТАВИТЬ транспортное средство, блок, типа, статус, дата, время на perpetual_snapshot_history где тип = 1 и состояние = 2
ReggieY
0

голосов
1

ответ
19

Просмотры

How do I allow a machine to connect to local SQL file

Я в настоящее время работаю над системой EPOS для друзей магазина, я в настоящее время получить его слишком протестировать возможности, убедившись, что дизайн и т.д. отлично. Я создал базы данных на основе SQL Service, но проблема, кажется, тоже будет он получать System.Data.SqlClient.SqlException ошибки (0x80131904): Произошла ошибка сети связанных или экземпляра конкретных при установлении соединения с SQL Server , Сервер не найден или не был доступен. Убедитесь, что имя экземпляра правильно и что SQL Server настроен для удаленных подключений. Я предполагаю, что это потому, что он не получил сервер управления SQL установлен? Мне было интересно, если есть в любом случае, что я могу включать в себя все необходимые файлы SQL для него, так что он может просто открыть программу и тогда это соединить? Pastebin Моей строки соединения внутри моего кода: . Строка connString = Settings.Default [ "DBConnectioNString"] ToString (); SqlConnection Conn = новый SqlConnection (connString); если (conn.State = System.Data.ConnectionState.Open!) conn.Open (); DBConnectionString, который генерируется при создании БД на основе службы: Источник данных = (LocalDB) \ MSSQLLocalDB; AttachDbFilename = | DataDirectory | \ Базы данных \ DB.mdf; Integrated Security = True Когда я построить решение, он содержит файл базы данных, где именно Я положил его в VS17, какие-либо идеи о том, как я могу сделать эту работу на своей машине без него того, чтобы загрузить SQL Management DB? Если кто-то может мне точку в правильном направлении, которое будет оценено, спасибо. ConnectionState.Open) conn.Open (); DBConnectionString, который генерируется при создании БД на основе службы: Источник данных = (LocalDB) \ MSSQLLocalDB; AttachDbFilename = | DataDirectory | \ Базы данных \ DB.mdf; Integrated Security = True Когда я построить решение, он содержит файл базы данных, где именно Я положил его в VS17, какие-либо идеи о том, как я могу сделать эту работу на своей машине без него того, чтобы загрузить SQL Management DB? Если кто-то может мне точку в правильном направлении, которое будет оценено, спасибо. ConnectionState.Open) conn.Open (); DBConnectionString, который генерируется при создании БД на основе службы: Источник данных = (LocalDB) \ MSSQLLocalDB; AttachDbFilename = | DataDirectory | \ Базы данных \ DB.mdf; Integrated Security = True Когда я построить решение, он содержит файл базы данных, где именно Я положил его в VS17, какие-либо идеи о том, как я могу сделать эту работу на своей машине без него того, чтобы загрузить SQL Management DB? Если кто-то может мне точку в правильном направлении, которое будет оценено, спасибо. любые идеи о том, как я могу сделать эту работу на своей машине без него того, чтобы загрузить SQL Management DB? Если кто-то может мне точку в правильном направлении, которое будет оценено, спасибо. любые идеи о том, как я могу сделать эту работу на своей машине без него того, чтобы загрузить SQL Management DB? Если кто-то может мне точку в правильном направлении, которое будет оценено, спасибо.
Kevin Gorman
1

голосов
2

ответ
1.8k

Просмотры

на каких уровнях продукта Sql Server, захват Изменения данных (CDC) функция доступен?

У меня есть проект, который включает в себя использование Sql Server 2012 Standard Edition. Этот проект должен иметь Capture Sql Server Change Data включен (CDC). Является ли CDC доступны в Sql Server Standard Edition?
Eugene Goldberg
0

голосов
1

ответ
16

Просмотры

Выполнение сценария для добавления первичных ключей для всех таблиц возвращает ошибку

Я хочу, чтобы добавить первичный ключ IDD каждый «Temp ...» таблицу в схеме. Я пытаюсь сделать это следующим образом: DECLARE @addId VARCHAR (MAX) = «»; ВЫБОР @addId = @addId + ALTER TABLE [ '+ TABLE_NAME +] ADD IDD INT IDENTITY (1,1); ALTER TABLE [' + TABLE_NAME +] ADD PRIMARY KEY (IDD); ' ОТ INFORMATION_SCHEMA.TABLES ГДЕ table_name LIKE '% Temp' EXEC (@addId); Я вернулся с такой ошибкой: Несколько столбцов идентификаторов, определенных для таблицы «TempTable». Только один столбец идентификаторов в таблице допускается. Что такое мой проступок? EDIT: Там нет первичного ключа уже определены в таблицах.
Passer7by
1

голосов
3

ответ
1.7k

Просмотры

Реализовать ранг без использования аналитической функции

Мне интересно, если есть способ реализации SQL аналитических функций без использования встроенных функций. Может кто-то помочь мне с этим. Спасибо. SELECT *, ROW_NUMBER () OVER (PARTITION BY dept_id ORDER BY зарплаты DESC) А.С. ROWNUM, DENSE_RANK () OVER (PARTITION BY dept_id ORDER BY зарплаты DESC) AS DENSERANK, RANK () OVER (PARTITION BY dept_id ORDER BY зарплаты DESC) AS RNK FROM EMP;
Teja
1

голосов
1

ответ
413

Просмотры

SQL Server transactions errors due to different Isolation Levels

MyDatabase», потому что оператор был запущен под изоляцией моментальных снимков, но сделка не начнется в изоляции моментальных снимков. Вы не можете изменить уровень изоляции транзакции снимка после того, как сделка началась, если сделка не было изначально под уровнем изоляции моментального снимка. Не удается выполнить откат t2. Ни одна сделка или точка сохранения этого имени не было найдено. Если удалить транзакции и запустить его, как простые хранимые процедуры, она отлично работает. Это почему? Если удалить транзакции и запустить его, как простые хранимые процедуры, она отлично работает. Это почему? Если удалить транзакции и запустить его, как простые хранимые процедуры, она отлично работает. Это почему?
Offir Pe'er
1

голосов
2

ответ
19

Просмотры

Можно ли использовать LIKE с набором строк вместо одного элемента?

У меня есть список имен собственных (в таблице), а также другую таблица с свободным текстовым полем. Я хочу, чтобы проверить, содержит ли это поле любого из имен собственных. Если бы это было только один, я мог бы сделать WHERE free_text LIKE «% proper_name%», но как вы делаете это для всего списка? Есть ли лучшая функция строки можно использовать со списком? Спасибо
vvv
1

голосов
2

ответ
294

Просмотры

Generate all possible combinations between two columns and an indicator to show if that combination exists in the source table

Я полностью потерял на определенном этапе на делать преобразование. Я планирую добиться его либо с помощью SQL или pyspark. Мой формат входного сигнала. Имя Идентификатор 1 A 1 C 1 E 2 A 2 B 2 C 2 E 2 F 3 A 3 E 3 D Не могли бы вы помочь мне получить этот формат вывода. Идентификатор Рейтинг Название 1 A 1 1 B 0 1 C 1 1 D 0 1 R 1 1 F 0 2 A 1 2 B 1 2 C 1 2 D 0 2 Е 1 2 F 1 3 А 1 3 В 0 3 С 0 3 Д 1 3 E 1 3 F 0 в запросе SQL принимает навсегда просто хочу, чтобы увидеть, если я могу достичь того же с помощью pyspark для подачи набора данных в БАС. Другими словами, как сгенерировать все возможные комбинации между идентификатором и именем, и если комбинация существует с в таблице установить рейтинг 1 в противном случае 0?
ankush reddy
1

голосов
2

ответ
134

Просмотры

Чтение данных из CSV-файла и вставить его в базу данных

У меня есть требование, чтобы прочитать данные из файла CSV и заселить его в базу данных. Я использую BCP командной строки утилиты для этой цели. Моя CSV-файл выглядит следующим образом: First_name, Last_name, EmpID, компании, языки "Джек", "Томас", "57616", "IBM", "C C ++ JAVA COBOL PERL SQL" "Тим", "Кук", "10001 »,„Яблоко“,„Python C ++ Java XML“Как вы видите, последний столбец (языки) имеет значения, каждый на новой строке. Команда БКПА сценария для проверки строки разделителя и, как только он получает первое значение из последнего столбца, он завершает запрос вас, пожалуйста, подсказывает, как разобрать это с помощью BCP?
Abhishek Pandey
1

голосов
2

ответ
38

Просмотры

В случае, если процедура возвращает значение?

В случае, если процедура возвращаемое значение в MYSQL? У меня есть процедура, которая проверяет порядок и изменяет статус некоторых условий. В зависимости от состояния результата условие может быть разница также. Как вернуть обратно код результата? Или конкретное сообщение?
user3573738
1

голосов
2

ответ
35

Просмотры

Remove the first character from an ID

Я пытаюсь сделать запрос SQL с РЕГИСТРИРУЙТЕСЬ но у меня есть подана где идентификатор, содержащий букву в первом положении. Мне нужно, чтобы опустить его, когда я делаю запрос. Значение службы столбца равно идентификатор tbl2 без символа «S»). Вот таблица: tbl1 ------------------- | ID | обслуживание | ------------------- | 58186 | S83968 | | ... | ... | tbl2 ------------------- | ID | домен | ------------------- | 83968 | serv123 | | ... | ... | То, что я пытался: SELECT `domain` FROM` tbl2` INNER JOIN `tbl1` WHERE tbl2.id = tbl1.SUBSTR (обслуживание, 2) и Ид = '58186'; Он возвращает ошибку:. # 1630 - FUNCTION tbl1.SUBSTR не существует. Проверьте «Название функции Синтаксический и разрешение» раздел в Справочное руководство Ожидаемый результат: ----------- | домен | ----------- | serv123 |
executable
1

голосов
2

ответ
158

Просмотры

MySQL Команды из синхронизации Python

Я пытаюсь инициализировать свою базу данных с MySQL и соединителем питона MySQL. После того, как я бегу код ниже я получаю это исключение: mysql.connector.errors.DatabaseError: 2014 (HY000): Команды из синхронизации; вы не можете запустить эту команду теперь я попробовал несколько вещи, в том числе совершить объект подключения хотя ничего, как работали для меня. инициализации четкости (): CNX = mysql.connector.connect (пользователь = "корень", пароль = "XXXXXXXXX", хозяин = '127.0.0.1') курсор = cnx.cursor () cursor.execute ( "CREATE DATABASE IF NOT EXISTS izugitdb; ") cursor.execute (" USE izugitdb; ") cursor.execute (" CREATE TABLE IF NOT EXISTS employee_users (user_id INT AUTO_INCREMENT PRIMARY KEY, имя пользователя VARCHAR (40) NOT NULL, пароль VARCHAR (40) NOT NULL, IsAdmin TINYINT (1) По умолчанию 0 NOT NULL);»
delex
1

голосов
2

ответ
45

Просмотры

Обновление рассчитываемая полей

Поэтому у меня есть 2 таблицы. проекты ID: Integer, рейтинг PK: Float project_counters PROJECT_ID: Integer expires_at: DateTime значение: Float Есть ли способ, чтобы написать запрос, который будет обновлять все проекты записи настройки рейтинга на сумму значений на соответствующие счетчики, которые имеют expires_at набор в будущее?
Almaron
1

голосов
1

ответ
52

Просмотры

Объявление константы в PLSQL

У меня возникают проблемы, объявляя константу и использовать ее в простом запросе. Я пробовал много вариантов объявить константу в PLSQL, что я видел в Интернете, но я получаю ошибки. Что я делаю неправильно? ЗАЯВЛЯЕТ cobdate постоянного числа (10): = 420181109; НАЧАТЬ SELECT * FROM THIS_TABLE DEX ГДЕ dex.close_of_business_key = & cobdate И dex.scenario_type_id = 'хххх' И dex.s_counterparty_id = 'хххх' И dex.run_type = 'хххх' И dex.s_credit_line_type_id END = 'XXXX';
danny schult
1

голосов
1

ответ
46

Просмотры

Хранимая процедура возвращения 0 на идентичностью области видимости

Я использую эту же процедуру на старом проекте, и он работает на некоторое время, так что я не могу понять, что не так с этим и почему она возвращает 0, когда я вставляю. ЕСЛИ OBJECT_ID ( 'dbo.spInsertArtigo') IS NOT NULL ПРОЦЕДУРА DROP spInsertArtigo GO CREATE PROCEDURE spInsertArtigo @IdUser INT, ----- ----- hArtigos @MotivoCriacao NVARCHAR (100) = NULL, @CodeRequest TINYINT, @Cliente TINYINT , @ReferenciaCliente NVARCHAR (50), @ReferenciaInterna NVARCHAR (7), @Indice NVARCHAR (10), @Projecto NVARCHAR (50), @Desenho NVARCHAR (50), @CadenciaMensal INT, @NumCOMDEV NVARCHAR (50), @QTDLancamentoFormas INT , @CapacidadeReal NVARCHAR (20) = NULL, то @Observacoes NVARCHAR (100) = NULL, ----- ----- hCaixa @TipoCaixa NVARCHAR (50) = NULL, то @QTDPecasCaixa INT = NULL, то CelulaProducao, Песо, NumKanbansProducao, IdArtigo) ЗНАЧЕНИЯ (@TipoCaixa, @QTDPecasCaixa, @UnidadeProducao, @CelulaProducao, @Peso, @NumKanbansProducao, SCOPE_IDENTITY ()) INSERT INTO hMetodologiaProducao (TipoMetodologia, QTDMetodoProducao, IdArtigo) VALUES (@TipoMetodologia, @QTDMetodoProducao, SCOPE_IDENTITY ()) INSERT INTO hData (DataCriacao, DataAlteracao, IdArtigo) ЗНАЧЕНИЯ (GETDATE (), GETDATE (), SCOPE_IDENTITY ()) ВЫБОР @ID = SCOPE_IDENTITY () END END Это где я вызвать процедуру общественности статической INT InsertRequisicao (Requisicao REQ) {строка CONSTR = ConfigurationManager.ConnectionStrings [ "GestaoRequisicoes_ConnectionString"] ConnectionString.; Строка запроса = "spInsertArtigo"; попробуйте {используя (SqlConnection кон = новый SqlConnection (CONSTR)) с использованием (SqlCommand CMD = новый SqlCommand (запрос, жулик)) {cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue ( "@ IdUser", HttpContext.Current.User.Identity.Name); cmd.Parameters.AddWithValue ( "@ MotivoCriacao", req.MotivoCriacao); cmd.Parameters.AddWithValue ( "@ CodeRequest", req.CodeRequest); cmd.Parameters.AddWithValue ( "@ Cliente", req.Cliente); cmd.Parameters.AddWithValue ( "@ ReferenciaCliente", req.ReferenciaCliente); cmd.Parameters.AddWithValue ( "@ ReferenciaInterna", req.ReferenciaInterna); cmd.Parameters.AddWithValue ( "@ Indice" , Req.Indice); cmd.Parameters.AddWithValue ( "@ Projecto", req.Projecto); cmd.Parameters.AddWithValue ( "@ Desenho", req.Desenho); cmd.Parameters.AddWithValue ( "@ CadenciaMensal", req.CadenciaMensal); cmd.Parameters.AddWithValue ( "@ NumCOMDEV", req.NumCOMDEV); cmd.Parameters.AddWithValue ( "@ QTDLancamentoFormas", req.NumLancamentoFormas); cmd.Parameters.AddWithValue ( "@ CapacidadeReal", req.CapacidadeReal); cmd.Parameters.AddWithValue ( "@ TipoCaixa", req.TipoCaixa); cmd.Parameters.AddWithValue ( "@ QTDPecasCaixa", req.NumPecasCaixa); cmd.Parameters.AddWithValue ( "@ UnidadeProducao", req.UnidadeProducao); cmd.Parameters. AddWithValue ( "@ CelulaProducao", req.CelulaProducao); cmd.Parameters.AddWithValue ( "@ Песо", req.Peso); cmd.Parameters.AddWithValue ( "@ NumKanbansProducao", req.NumKanbansProducao); cmd.Parameters.AddWithValue ( "@ TipoMetodologia", req.TipoMetodologia); cmd.Parameters.AddWithValue ( "@ QTDMetodoProducao", req.NumMetodoProducao); cmd.Parameters.AddWithValue ( "@ Observacoes", req.Observacoes); con.Open (); вернуть Convert.ToInt32 (cmd.ExecuteScalar ()); }} Задвижка (SqlException ех) {бросок ех; }} Я думаю, что все выглядит нормально ... Процедура точно так же, как и другие, и я не думаю, что там»
Jackal
1

голосов
2

ответ
83

Просмотры

Как Увеличивает номер с помощью текущей даты

У меня есть таблица StaffLeave в SQL Server со следующими столбцами: DateStarted, DaysTaken, DaysOnLeave и LeaveStatus. После того, как сотрудники в отпуске текущей даты следует держать подсчет дней в отпуске в колонке DaysOnLeave и когда DaysTaken == DaysOnLeave статус отпуска должен изменен. Это то, что я сделал до сих пор, я прочитал DateStarted из базы данных, используя ExecuteReader и хранить дату в переменный. Затем я сравниваю текущую дату с ним. Если текущая дата больше, то я увеличиваем DaysOnLeave один. У меня возникли проблемы при проверке второй, третий, четвертый день и так далее, где текущая дата будет больше на 2,3,4 дней и так далее.
muhdamean
1

голосов
3

ответ
266

Просмотры

Перемещение данных базы данных SQL Server для SAP BW

Я прочитал несколько статей о переносе данных из SAP BW и в SQL Server. Я не могу найти ни одной статьи на перемещение данных из SQL Server для SAP BW, это даже возможно, и если это так, что было бы лучшим способом справиться с этим?
Etienne
1

голосов
2

ответ
40

Просмотры

Is it possible to insert row into the child table of FOREIGN KEY?

I have three tables in my database: COMPANY(ID, NAME) COUPON(ID, TITLE) COMPANY_COUPON(COMPANY_ID, COUPON_ID) Company can create coupons, so when it creates coupon, coupon's ID and ID of the company will be added into COMPANY_COUPON table. When company deletes coupon it also will be deleted from COUPON and COMPANY_COUPON due to FOREIGN KEY. When I delete company it also deleted from COMPANY and COMPANY_COUPON due to FOREIGN KEY, but all its coupons stay in COUPON table, I tried to add into COUPON table FOREIGN KEY(ID) REFERENCES COMPANY_COUPON(COUPON_ID), but because of it I can't insert new coupons into COUPON table. Will be happy for answers how to create right tables and how to add something that will help to existing tables. Maybe some joins can help with it, I'm really not strong in sql command yet, sorry... Also, i was using this method to join COMPANY_ID and COUPON_ID in COMPANY_COUPON table, maybe there is some better way to do it. @Override public void linkCompanyCoupon(long companyID, long couponID) throws CouponSystemException { Connection connection = pool.getConnection(); String CREATE_COUPON = "INSERT INTO COMPANY_COUPON (COMPANY_ID, COUPON_ID) VALUES (?,?)"; try (PreparedStatement pstmt = connection.prepareStatement(CREATE_COUPON)) { pstmt.setLong(1, companyID); pstmt.setLong(2, couponID); pstmt.executeUpdate(); } catch (SQLException e) { throw new CouponSystemException("Linking company to the coupon is failed. ", e); } finally { pool.returnConnection(connection); } } This one is creates coupon, and inside it i use linkCompanyCoupon(); public void createCoupon(Coupon coupon) throws CouponSystemException { // Checking if name of the new coupon is not duplicate Optional isCouponTitleDuplicate = Optional.ofNullable(couponDBDAO.getCouponByTitle(coupon.getTitle())); if (!isCouponTitleDuplicate.isPresent()) { couponDBDAO.createCoupon(coupon); companyDBDAO.linkCompanyCoupon(loggedCompany, couponDBDAO.getCouponByTitle(coupon.getTitle()).getId()); } else { throw new CouponSystemException("Coupon title: " + coupon.getTitle() + " already exists in database, titles and IDs of the coupons must be unique."); } }
Vladimir
1

голосов
1

ответ
40

Просмотры

min(count(*)) over… behavior?

Я пытаюсь понять поведение выбора ....., MIN (COUNT (*)) над (раздел по hotelid) VS выбрать ....., COUNT (*) над (раздел по hotelid) Ok. У меня есть список отелей (1,2,3) В каждом отеле есть отделы. На каждых департаментах есть рабочие. Мои данные выглядит следующим образом: SELECT * FROM данных Ok. Глядя на этот запрос: выберите hotelid, DepartmentID, CNT = COUNT (*) над (раздел по hotelid) из группы данных по hotelid, DepartmentID ORDER BY hotelid Я прекрасно понимаю, что здесь происходит. В этот результирующий набор, разделение по hotelId, мы рассчитываем видимые строки. Но посмотрите, что происходит с этим запросом: выберите hotelid, DepartmentID, min_cnt = мин (COUNT (*)) над (раздел по hotelid) из группы данных по hotelid, DepartmentID ORDER BY hotelid Вопрос: Где эти цифры пришли из? Я не» т понять, как добавление мин вызвало этот результат? мин чего? Может кто-то пожалуйста, объясните, как это расчет делается? играть на скрипке
Royi Namir
1

голосов
1

ответ
53

Просмотры

Почему я не могу использовать функцию форматирования в то время как Jet-SQL в T-SQL?

Я пытаюсь преобразовать один из моих запросов MS Access, содержащих формат с точкой зрения SQL Server. У меня есть мнение, подключенного к MS Access в виде связанных таблиц. Я смотрел на этой MS Access к SQL-сервер накрутка-листу для преобразования Jet-SQL в T-SQL. Шпаргалка говорит: Доступ: Выберите формат (значение, FormatSpecification) (примечание: это всегда возвращает строковое значение) T-SQL: Не делайте этого в T-SQL; формат данные на вашем фронтальном приложении или отчете я не могу форматировать данные на моем переднем конце, так как представление SQL Server связан в виде связанных таблиц. Я не могу иметь функцию форматирования в таблицах. Шпаргалка не дает никаких объяснений о том, почему не сделать это в T-SQL. В чем причина не использовать формат при преобразовании Jet-SQL в T-SQL?
jedu
1

голосов
1

ответ
31

Просмотры

Функция T-SQL Json_modify

Функция T-SQL JSON_MODIFY имеет некоторую проблему его добавление обертки при добавлении новой пары значений, как заявляет @jsonstring VARCHAR (макс) = '{ "Ширину": "100%", "длина": "45%"}' выберите JSON_MODIFY ( @ jsonstring, 'добавить $ .height', '50%») - {выход "Ширина": "100%", "Длина": "45%", "Рост": [ "50%"]} - Его добавление обертка я неспособен удалить эту оболочку - ожидая выхода { «Ширина»: «100%», «Длина»: «45%», «Высота»: «50%»}
Kumar_2002
1

голосов
2

ответ
31

Просмотры

Группировка по найти средние различия для конкретных индексов в SQL

У меня есть следующая таблица: person_index оценка год 3 76 2003 3 86 2004 3 86 2005 3 87 2006 4 55 2005 4 91 2006 Я хочу, чтобы сгруппировать по person_index, получая среднюю разницу оценка между последовательными лет, так что я в конечном итоге с одной строка на человека, что указывает на среднее увеличение / уменьшение: person_index сред (score_diff) 3 3,67 4 36 Таким образом, для человека с индексом 3 - произошли изменения в течение 3-х лет, один был 10pt, один 0, и один 1pt. Таким образом, их средний score_diff составляет 3,67. EDIT: уточнить, баллы можно также уменьшить. И годы не обязательно подряд (один человек не может получить счет в определенном году, так что может быть 2013, затем к 2015 году).
guyts
1

голосов
2

ответ
67

Просмотры

SQL - ORA-00937: не функциональная группы одногрупповой

рассчитывать (случай, когда экстракт (год от match_date) = «2018», то один конец) Всего с match_results группы по местоположению, HOME_TEAM_NAME; Сообщение об ошибке: ORA-00937: не функциональная группа одной группы. В настоящее время работает это на оракул живого SQL. Любые идеи о том, как я могу решить эту проблему?
sammywemmy
1

голосов
3

ответ
29

Просмотры
1

голосов
3

ответ
71

Просмотры

GROUP BY заявление с командой PIVOT в T-SQL

У меня есть запрос SQL, который включает в себя команду PIVOT, которая создает правильную таблицу, но теперь мне нужно GROUP BY одной из колонн. Когда я пытаюсь добавить GROUP BY заявление, она возвращается следующее сообщение об ошибке: «Колонка„PivotTable.1“недопустим в списке выбора, поскольку он не содержится ни в статистической функции или предложения GROUP BY.» SELECT [Load ID], [1], [2], [3], [4] ОТ TMS_Load_Stops PIVOT (MIN ([Стоп Zip]) для [Sequence] В ([1], [2], [3], [4])) сводная таблица; Исходный код дает следующие результаты: И я хотел бы, чтобы результаты были следующим образом (значения случайных чисел для объяснения целей):
C1-14MP
1

голосов
3

ответ
72

Просмотры

При отливке метки времени на сегодняшний день дает (дата + 1)

В Google Шпаннер, я пытаюсь бросить некоторые временные метки на сегодняшний день, когда я нашел этот вопрос. При выполнении сценария ниже: SELECT EXTRACT (ДАТА ИЗ CAST ( "2019-01-01T07: 56: 34Z" AS TIMESTAMP)) Я получаю выход 2018-12-31, а не 2019-01-01. Как я должен разобрать его точную дату?
Logical
1

голосов
5

ответ
74

Просмотры

как найти таблицы, которые имеют столбцы значения, если я не знаю таблицу

У нас есть приложение, используемое в работе, которая была создана третьей стороной. Таким образом, мы имеем доступ к пользовательскому интерфейсу и не кода серверной. В этом приложении есть выпадающий список. У меня есть доступ к MSSQL БД, что это приложение работает на. Мне нужно знать, где этот выпадающий список получает информацию от но я не знаю, какую таблицу он использует (потому что я не могу проверить код непосредственно). Есть ли запрос, я могу написать для поиска по всей БД для таблиц, имеющих столбцы, которые содержат определенное значение? Значения DropDownList являются: WebsiteAPP СЭП приложение Walkin BotLead
Kalyn
1

голосов
2

ответ
46

Просмотры

с помощью: новые и старые: ссылающийся на различные таблицы в SQL

Пересмотр для универа экзамена. А вопрос гласит: Записать команду SQL, чтобы создать триггер в таблице разрешения. Триггер должен добавить один к numberOfPermissions в таблице файлов для файла, после того, как каждый раз, когда новое разрешение строка вводится в таблицу разрешения с именем этого файла. вот список таблиц при условии, что я получил все вниз, кроме одной линии, КУДА линии. Как бы я указать: новое значение в другую таблицу? Он должен прочитать новое значение в качестве столбца имени файла, поступающего из таблицы разрешений, но я не уверен, как это сделать. Я пробовал его способами, такие как: Permissions.new.fileName и т.д., но я всегда получаю неизвестную ошибку вокруг «» точка. CREATE TRIGGER newTrig ПОСЛЕ ВСТАВИТЬ о разрешении НАЧАТЬ Обновление файла SET numberOfPermissions = numberOfPermissions + 1, где File.name =: new.fileName END;
Armakar
1

голосов
2

ответ
37

Просмотры

Показать все варианты, если пользователь администратор и только один вариант, если не админ в SQL запросе

У меня есть хранимая процедура, которая возвращает значения из таблицы. То, что я хочу, чтобы вернуть конкретные значения на основе из вариантов 0, 1, 2, если пользователь не администратор, а затем, если пользователь администратора, будет отображаться все параметры, и это будет происходить в одном запросе. Вот пример кода. ЕСЛИ (@isAdmin = 'истина') НАЧАТЬ Выбор TOP 10 * FROM [DBO]. [Inventorydetails] ГДЕ InventoryType = 'активный' КОНЕЦ ИНАЧЕ НАЧАТЬ Выбор TOP 10 * FROM [DBO]. [Inventorydetails] ГДЕ InventoryType = 'активный' И OptionType = 0 END Я хочу, чтобы сократить свой код во что-то вроде этого ... SELECT TOP 10 * FROM [DBO]. [inventorydetails] WHERE InventoryType = 'активный' и OptionType = случай, когда @isAdmin! = 'истинный' THEN 0 END но это не работает. Есть идеи?
jned29
1

голосов
1

ответ
19

Просмотры

Как получить записи в SQL с разными значениями столбцов

У меня есть случай, когда использование У меня есть таблица, такие как: ключ | атрибут | key1 | х | key1 | у | key2 | г | key2 | г | Есть ли способ я могу найти все ключи, которые имеют более чем один уникальный атрибут в этом запросе? Для этого примера, я хотел бы только вернуться key1, поскольку он имеет атрибут х и у и х и у различны, где клавиша 2 имеет только один атрибут, который является уникальным.
SnG
1

голосов
1

ответ
56

Просмотры

Как использовать 2 Если условия с Update

У меня есть следующий запрос на обновление; UPDATE службы SET PathNameEn = (SELECT NameEn FROM службы WHERE ID = 430) + '>' Я хочу добавить еще WHERE условие, которое WHERE ID от 430 до 435 я пробовал: UPDATE службы SET PathNameEn = (SELECT NameEn FROM службы WHERE ID = 430 И идентификатор от 430 до 435) + «>» Но это не сработало
hazem
1

голосов
3

ответ
48

Просмотры

В пакете SSIS Экспорт Как переименовать назначения первенствует файл с отметкой времени, прикрепленной к ней?

В пакете SSIS Экспорт Как переименовать назначения первенствует файл с отметкой времени, прикрепленной к ней? У меня есть Excel как мой файл назначения. Как переименовать файл назначения с отметкой времени, прикрепленный к его суффиксу? такие как myfile_010120191100.xls Создание динамического имени файла поможет нам избежать перезаписи.
goofyui
1

голосов
2

ответ
45

Просмотры

Как я могу иметь UNION псевдонимов столбцов уважения?

Извините за плохой титул, я не мог придумать ничего лучшего. Вы можете редактировать. Я должен работать с таблицей БД, которая использует один столбец для хранения различных типов информации (фамилия, если лицо, название компании, если компания). Кошмар, я знаю, но это то, что она есть. Для того, чтобы различать смысл, есть еще один столбец с целым числом, которое определяет тип, что в столбце Имя. Схема этой таблицы выглядит следующим образом (упрощенный): ID INT DTYPE имя INT VARCHAR (50) Таким образом, образец может выглядеть следующим образом: ID имя DTYPE ----------------- ---------- 1 0 2 0 Smith Trump 3 1 ABC Ltd. 4 1 XYZ Ltd. Я пытаюсь нормализовать это с помощью следующего кода T-SQL: с компаниями AS (SELECT ID, имя AS компания ОТ NameTable ГДЕ DTYPE = 1), люди AS (SELECT ID, имя AS человека от NameTable WHERE DTYPE = 0), SELECT * FROM компании UNION ALL SELECT * FROM людей; То, что я надеялся получить новый стол со схемой: ID DTYPE компании человека, или в виде таблицы: ID DTYPE лицо компании ----------------------- ------------------- 1 0 2 0 Smith Trump 3 1 ABC Ltd. 4 1 XYZ Ltd. вместо этого поля теперь просто называется человек вместо имени, но он по-прежнему только одно поле для 2-х типов информации. Я понимаю, что я мог бы просто создать новую таблицу и вставить каждый частичный результат в этом, но это, кажется, не должно быть более простым способом. Любые советы оценили. SELECT * FROM компании UNION ALL SELECT * FROM людей; То, что я надеялся получить новый стол со схемой: ID DTYPE компании человека, или в виде таблицы: ID DTYPE лицо компании ----------------------- ------------------- 1 0 2 0 Smith Trump 3 1 ABC Ltd. 4 1 XYZ Ltd. вместо этого поля теперь просто называется человек вместо имени, но он по-прежнему только одно поле для 2-х типов информации. Я понимаю, что я мог бы просто создать новую таблицу и вставить каждый частичный результат в этом, но это, кажется, не должно быть более простым способом. Любые советы оценили. SELECT * FROM компании UNION ALL SELECT * FROM людей; То, что я надеялся получить новый стол со схемой: ID DTYPE компании человека, или в виде таблицы: ID DTYPE лицо компании ----------------------- ------------------- 1 0 2 0 Smith Trump 3 1 ABC Ltd. 4 1 XYZ Ltd. вместо этого поля теперь просто называется человек вместо имени, но он по-прежнему только одно поле для 2-х типов информации. Я понимаю, что я мог бы просто создать новую таблицу и вставить каждый частичный результат в этом, но это, кажется, не должно быть более простым способом. Любые советы оценили. ID DTYPE лицо компании ------------------------------------------ 1 0 Smith 2 0 Trump 3 1 ABC Ltd. 4 1 XYZ Ltd. вместо этого поля теперь просто называют человека вместо имени, но это еще только одно поле для 2-х типов информации. Я понимаю, что я мог бы просто создать новую таблицу и вставить каждый частичный результат в этом, но это, кажется, не должно быть более простым способом. Любые советы оценили. ID DTYPE лицо компании ------------------------------------------ 1 0 Smith 2 0 Trump 3 1 ABC Ltd. 4 1 XYZ Ltd. вместо этого поля теперь просто называют человека вместо имени, но это еще только одно поле для 2-х типов информации. Я понимаю, что я мог бы просто создать новую таблицу и вставить каждый частичный результат в этом, но это, кажется, не должно быть более простым способом. Любые советы оценили. Я понимаю, что я мог бы просто создать новую таблицу и вставить каждый частичный результат в этом, но это, кажется, не должно быть более простым способом. Любые советы оценили. Я понимаю, что я мог бы просто создать новую таблицу и вставить каждый частичный результат в этом, но это, кажется, не должно быть более простым способом. Любые советы оценили.
vic
1

голосов
2

ответ
32

Просмотры

Q: How to retrieve date with time(hours,minutes,seconds) from a 19 digit number in Oracle

Я хочу, чтобы получить дату и время из 19 цифр в Oracle и не могу найти решения для этого больших чисел. Время должно быть в формате HH24: MI: SS. Я могу получить дату, но не в состоянии получить время. ** Пример Число, чтобы получить дату и время: 1190205161950369000, 1190206092859146000, 1181230172734928000, 1181108121251823000 Для этого выше цифр, я добавил их значение сложения «19000000000000000000» и подстрока первые 8 цифр от общей стоимости, так что первые 8 цифр дать мне дата (ггггммдд). Для примера: SUBSTR (1190205161950369000 + 19000000000000000000,0,8) = 20190205 Следовательно, дата 05-02-2019 (ДД-ММ-ГГГГ). Но, чтобы получить время, даже если я увеличить длину подстроки от 8 до 14 или 18 до сих пор я получаю только дата и не время. SQL Query Использована Выберите to_date (SUBSTR (1190205161950369000 + 19000000000000000000,0,8), 'YYYYMMDD HH24: MI: SS'), как truedate от двойного; Результат: TRUEDATE --------- 05-02-2019 Я также попытался это, но не работает: Выберите to_date (SUBSTR (1190205161950369000 + 19000000000000000000,0,14), «YYYYMMDD HH24: MI: SS.SSSSS «), как truedate от двойного;
Dhanesh Agrawal

Просмотр дополнительных вопросов

Связанные вопросы