Добрый день имеется Б.Д., где
// Начало
CREATE TABLE `Вася_Пупкин` (
`Наименование` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`Ном.№` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`Стоимость` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`22.08.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`05.09.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`08.09.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`13.09.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`27.09.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`13.10.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`20.10.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`27.10.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`03.11.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`14.11.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`13.12.22` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci',
`12.01.23` VARCHAR(1024) NULL DEFAULT NULL COLLATE 'cp1251_general_ci'
)
COLLATE='cp1251_general_ci'
ENGINE=InnoDB
;
// Конец
Не могу сделать выборку: `Наименование`, `Ном.№`, `12.01.23`*
* `12.01.23` -это дата последнего поступления на склад. Столбцы постоянно добавляются другими датами.
В некоторых языках программирования имеется возможность выбрать по номеру столбца. В SQL что-то плохо искал.
Помогите написать запрос, при котором формировался ответ для дальнейшего экспорта на моб.устройства.
Помогите создать запрос
Re: Помогите создать запрос
Здесь в каждой строке, как минимум одна ошибка.
Строить запрос по ЭТОМУ - бессмысленно.
Переделывай "базу" которая "есть".
Строить запрос по ЭТОМУ - бессмысленно.
Переделывай "базу" которая "есть".
Re: Помогите создать запрос
Это структура Б.Д..
Столбцы: Наименование, Ном.№, Стоимость, Дата №1, Дата№2,.., Дата№N.
строки: Название запчасти, в рублях, Кол-во запчастей на эту дату.
Пример:
Наименование: Аккумулятор для CARDIOVIT АТ-1 Размер 97х43х52 мм. Ном.№: ГУ-000000011383, Кол-во: 7
SELECT Наименование, Ном.№, ? FROM `srv50b`.`Вася_Пупкин` WHERE ?>0;
Нужно выбрать: Наименование, Ном.№, Дата№N.
В языках программирования просто сделать, но в SQL не могу найти инфу.
куда это вставить не осиливаю.
USE information_schema;
SELECT
COLUMN_NAME,
ORDINAL_POSITION
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'srv50b'
AND TABLE_NAME ='Вася_Пупкин'
ORDER BY ORDINAL_POSITION DESC
LIMIT 1;
Сервер Б.Д. установлен на удаленном хостинге.
База работает не один год. и удовлетворяет потребности.
Столбцы: Наименование, Ном.№, Стоимость, Дата №1, Дата№2,.., Дата№N.
строки: Название запчасти, в рублях, Кол-во запчастей на эту дату.
Пример:
Наименование: Аккумулятор для CARDIOVIT АТ-1 Размер 97х43х52 мм. Ном.№: ГУ-000000011383, Кол-во: 7
SELECT Наименование, Ном.№, ? FROM `srv50b`.`Вася_Пупкин` WHERE ?>0;
Нужно выбрать: Наименование, Ном.№, Дата№N.
В языках программирования просто сделать, но в SQL не могу найти инфу.
куда это вставить не осиливаю.
USE information_schema;
SELECT
COLUMN_NAME,
ORDINAL_POSITION
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'srv50b'
AND TABLE_NAME ='Вася_Пупкин'
ORDER BY ORDINAL_POSITION DESC
LIMIT 1;
Сервер Б.Д. установлен на удаленном хостинге.
База работает не один год. и удовлетворяет потребности.
Последний раз редактировалось Jurbanec 19.01.2023 09:52:44, всего редактировалось 1 раз.
Re: Помогите создать запрос
Название таблицы "Вася_Пупкин" говорит что никакой базы нет.
Все поля имеют тип VARCHAR(1024) что означает "я понятия не имею что такое типы данных"
Отсутствие первичного ключа означает "я ничего не читал про реляционные базы данных"
Все поля NULLable говорят что "я понятия не имею что такое NULL и как с ним жить"
На каждый приход по новой колонке говорит что "я работал только с Excel а базы данных вижу в первый раз"
Нет смысла строить запрос при таких исходных данных.
Все поля имеют тип VARCHAR(1024) что означает "я понятия не имею что такое типы данных"
Отсутствие первичного ключа означает "я ничего не читал про реляционные базы данных"
Все поля NULLable говорят что "я понятия не имею что такое NULL и как с ним жить"
На каждый приход по новой колонке говорит что "я работал только с Excel а базы данных вижу в первый раз"
Нет смысла строить запрос при таких исходных данных.
Последний раз редактировалось fraks 20.01.2023 05:19:47, всего редактировалось 1 раз.
Re: Помогите создать запрос
Справочник должен быть в отдельной таблице, приходы - в отдельной.
Примерно так:
Таблица Справочник
- Первичный ключ в этой таблице INTEGER NOT NULL PRIMARY KEY
- Наименование VARCHAR
- Ном № VARCHAR
Таблица Приходы:
- Первичный ключ в этой таблице INTEGER NOT NULL PRIMARY KEY
- Ссылка на первичный ключ в Справочник INTEGER NOT NULL FOREIGN KEY
- Дата DATE NOT NULL
- Цена NUMERIC NIY NULL
- Количество INTEGER NOT NULL
Вот по этой структуре уже можно будет строить какие-то осмысленные запросы.
Примерно так:
Таблица Справочник
- Первичный ключ в этой таблице INTEGER NOT NULL PRIMARY KEY
- Наименование VARCHAR
- Ном № VARCHAR
Таблица Приходы:
- Первичный ключ в этой таблице INTEGER NOT NULL PRIMARY KEY
- Ссылка на первичный ключ в Справочник INTEGER NOT NULL FOREIGN KEY
- Дата DATE NOT NULL
- Цена NUMERIC NIY NULL
- Количество INTEGER NOT NULL
Вот по этой структуре уже можно будет строить какие-то осмысленные запросы.
Re: Помогите создать запрос
Спасибо. Только толку от этого Null.
Дай дельный совет!!!
Смысл не, как построена БД. А в выборе последнего динамического столбца.
Структура создания таблицы была взята с программы HeidiSQL. Родной исходник в запутанном для Вас виде.
Название таблицы "Вася_Пупкин" говорит что никакой базы нет.
... Таблица с другим именем на удалённом сервере (hts.ru).
Все поля имеют тип VARCHAR(1024) что означает "я понятия не имею что такое типы данных"
... к делу не относиться.
Отсутствие первичного ключа означает "я ничего не читал про реляционные базы данных"
... не было в необходимости. Дело вкуса.
Все поля NULLable говорят что "я понятия не имею что такое NULL и как с ним жить"
... при заполнения Б.Д. не которые строки пропускаются.
На каждый приход по новой колонке говорит что "я работал только с Excel а базы данных вижу в первый раз"
... Мне больше по душе LibreOffice в KDE.
100% у Вас установлен MS-DOS 10-11.
В вашем примере не нашел ответа на мою просьбу.
Дай дельный совет!!!
Смысл не, как построена БД. А в выборе последнего динамического столбца.
Структура создания таблицы была взята с программы HeidiSQL. Родной исходник в запутанном для Вас виде.
Название таблицы "Вася_Пупкин" говорит что никакой базы нет.
... Таблица с другим именем на удалённом сервере (hts.ru).
Все поля имеют тип VARCHAR(1024) что означает "я понятия не имею что такое типы данных"
... к делу не относиться.
Отсутствие первичного ключа означает "я ничего не читал про реляционные базы данных"
... не было в необходимости. Дело вкуса.
Все поля NULLable говорят что "я понятия не имею что такое NULL и как с ним жить"
... при заполнения Б.Д. не которые строки пропускаются.
На каждый приход по новой колонке говорит что "я работал только с Excel а базы данных вижу в первый раз"
... Мне больше по душе LibreOffice в KDE.
100% у Вас установлен MS-DOS 10-11.
В вашем примере не нашел ответа на мою просьбу.
Re: Помогите создать запрос
Смысл в том что в sql нет понятия "динамический столбец".Смысл не, как построена БД. А в выборе последнего динамического столбца.