powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / выборка.... и сортировка
21 сообщений из 21, страница 1 из 1
выборка.... и сортировка
    #38742196
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, прошу помощи в формировании запроса с сортировкой.

Задача следующая:
есть 3 типа валюты и 6 типов вклада и ставка по вкладу
структуру хранения данных прикладываю во вложении.

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

имя банка 1 | регномер | имя валюты | uid вклада | ставка(bet)
имя банка 1 | регномер | имя валюты | uid вклада | ставка
имя банка 1 | регномер | имя валюты | uid вклада | ставка
имя банка 1 | регномер | имя валюты | uid вклада | ставка

имя банка 2 | регномер | имя валюты | uid вклада | ставка(bet)
имя банка 2 | регномер | имя валюты | uid вклада | ставка
имя банка 2 | регномер | имя валюты | uid вклада | ставка
имя банка 2 | регномер | имя валюты | uid вклада | ставка

выводить или сортировать было бы удобно из массива следующего вида(добавить доп столбцы):

имя банка 1 | регномер | ставка 1 валюта1(bet) | ставка 2 валюта1(bet) | ставка 1 валюта 2(bet) |
имя банка 2 | регномер |
имя банка 3 | регномер |
имя банка 4 | регномер |


пробывал делать примерно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
Select b.name,r.number as regnum,c.currency, t.uid, a.bet 
From archive a inner join banks b
 on a.bank_uid = b.uid 
inner join regnum r 
 on a.bank_uid = r.uid 
inner join currency c 
 on a.currency_uid = c.uid 
inner join type t on a.type_uid = t.uid
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742200
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742203
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитри4,

лично я не понял задачу... можно как-нибудь попроще объяснить?
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742208
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получить после запроса такой массив:
имя банка 1 | регномер | ставка 1 валюта1(bet) | ставка 2 валюта1(bet) | ставка 1 валюта 2(bet) |
имя банка 2 | регномер |
имя банка 3 | регномер |
имя банка 4 | регномер |
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742210
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитри4,

Никак. Набор полей не может быть разным в разных записях.
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742215
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я структуру могу поменять

изначально данные собираются с множества файлов такого формата
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<?xml version="1.0" encoding="WINDOWS-1251"?>
<CredOrgDepRate Title="Информация  о  процентных  ставках по договорам банковского  вклада с физическими лицами" DocDate="07.2014" ver="1.0">
<Org RegNum="3286" Name="ООО &quot;Дагэнергобанк&quot;">
<DepositsRub Title="По срокам согласно заключенным договорам банковского вклада с физическими лицами в российских рублях (в процентах годовых)">
<CallDep Title="До востребования">1,450</CallDep>
<Dep90 Title="На срок до 90 дней">5,671</Dep90>
<Dep91-180 Title="На срок от 91 до 180 дней">7,340</Dep91-180>
<Dep181-1 Title="На срок от 181 до 1 года">11,500</Dep181-1>
<Dep1-3 Title="На срок от 1 года до 3 лет">12,212</Dep1-3>
<Dep3up Title="На срок свыше 3 лет">13,601</Dep3up>
</DepositsRub>
<DepositsUSD Title="По срокам согласно заключенным договорам банковского вклада с физическими лицами в долларах США (в процентах годовых)">
<CallDep Title="До востребования">-</CallDep>
<Dep90 Title="На срок до 90 дней">-</Dep90>
<Dep91-180 Title="На срок от 91 до 180 дней">3,531</Dep91-180>
<Dep181-1 Title="На срок от 181 до 1 года">-</Dep181-1>
<Dep1-3 Title="На срок от 1 года до 3 лет">5,182</Dep1-3>
<Dep3up Title="На срок свыше 3 лет">-</Dep3up>
</DepositsUSD>
<DepositsEur Title="По срокам согласно заключенным договорам банковского вклада с физическими лицами в евро (в процентах годовых)">
<CallDep Title="До востребования">-</CallDep>
<Dep90 Title="На срок до 90 дней">-</Dep90>
<Dep91-180 Title="На срок от 91 до 180 дней">-</Dep91-180>
<Dep181-1 Title="На срок от 181 до 1 года">-</Dep181-1>
<Dep1-3 Title="На срок от 1 года до 3 лет">-</Dep1-3>
<Dep3up Title="На срок свыше 3 лет">-</Dep3up>
</DepositsEur>
</Org>
</CredOrgDepRate>



какую структуру бд сделать под такие данные ?
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742232
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитри4получить после запроса такой массив:
имя банка 1 | регномер | ставка 1 валюта1(bet) | ставка 2 валюта1(bet) | ставка 1 валюта 2(bet) |
имя банка 2 | регномер |
имя банка 3 | регномер |
имя банка 4 | регномер |

вот я эту задачу и не могу понять
я не пойму что это означает
я хочу увидеть результат в виде данных, а не в виде описания данных

ещё я не пойму что означает таблица во втором посте
короче, если честно, то вообще нихрена не понятно
даже вот эта фраза
и то не понятна
Дмитри4есть 3 типа валюты и 6 типов вклада и ставка по вкладу

то, что у вас сейчас происходит это довольно типичная ситуация
вы долго-долго варились в этой задаче и многие вещи вы просто выучили наизусть и они кажутся вам само-собой разумеющимися
но у нас, кто видит задачу впервые вообще нифига не понятно
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742439
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lumixвы долго-долго варились в этой задаче и многие вещи вы просто выучили наизусть и они кажутся вам само-собой разумеющимися
тут вы правы, возможно так и есть.

Выше по теме уже ответили что нельзя сделать то как я писал.... следовательно - надо переделать структуру базы данных:
формат данных которые надо будет хранить я привел выше.
Поэтому прошу помощи много уважаемых участников форума для формирования правильной структуры базы

сейчас база выглядит так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
-- phpMyAdmin SQL Dump
-- version 4.2.8
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Сен 10 2014 г., 09:04
-- Версия сервера: 5.5.39-log
-- Версия PHP: 5.5.16-pl0-gentoo

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

--
-- База данных: `deposits`
--

-- --------------------------------------------------------

--
-- Структура таблицы `archive`
--

CREATE TABLE IF NOT EXISTS `archive` (
`uid` int(11) NOT NULL,
  `bank_uid` bigint(15) NOT NULL,
  `currency_uid` tinyint(5) NOT NULL,
  `type_uid` tinyint(5) NOT NULL,
  `date_uid` int(11) NOT NULL,
  `bet` decimal(6,4) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=12655 DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Структура таблицы `banks`
--

CREATE TABLE IF NOT EXISTS `banks` (
`uid` int(11) NOT NULL,
  `name` varchar(200) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=681 DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Структура таблицы `currency`
--

CREATE TABLE IF NOT EXISTS `currency` (
`uid` int(4) NOT NULL,
  `currency` varchar(11) NOT NULL,
  `curr_xml` varchar(15) NOT NULL,
  `curr_name` varchar(50) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Структура таблицы `date`
--

CREATE TABLE IF NOT EXISTS `date` (
`uid` int(11) NOT NULL,
  `docdate` date NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Структура таблицы `regnum`
--

CREATE TABLE IF NOT EXISTS `regnum` (
`uid` int(11) NOT NULL,
  `number` bigint(11) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=678 DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--
-- Структура таблицы `type`
--

CREATE TABLE IF NOT EXISTS `type` (
`uid` int(4) NOT NULL,
  `type_bet` varchar(50) NOT NULL,
  `type_xml` varchar(50) NOT NULL,
  `name` varchar(100) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `archive`
--
ALTER TABLE `archive`
 ADD PRIMARY KEY (`uid`), ADD UNIQUE KEY `archive` (`uid`), ADD KEY `archive_2` (`uid`), ADD KEY `archive_3` (`uid`);

--
-- Индексы таблицы `banks`
--
ALTER TABLE `banks`
 ADD PRIMARY KEY (`uid`), ADD UNIQUE KEY `name` (`name`);

--
-- Индексы таблицы `currency`
--
ALTER TABLE `currency`
 ADD PRIMARY KEY (`uid`);

--
-- Индексы таблицы `date`
--
ALTER TABLE `date`
 ADD PRIMARY KEY (`uid`), ADD UNIQUE KEY `date` (`docdate`);

--
-- Индексы таблицы `regnum`
--
ALTER TABLE `regnum`
 ADD PRIMARY KEY (`uid`), ADD UNIQUE KEY `number` (`number`);

--
-- Индексы таблицы `type`
--
ALTER TABLE `type`
 ADD PRIMARY KEY (`uid`), ADD UNIQUE KEY `type` (`type_bet`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `archive`
--
ALTER TABLE `archive`
MODIFY `uid` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=12655;
--
-- AUTO_INCREMENT для таблицы `banks`
--
ALTER TABLE `banks`
MODIFY `uid` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=681;
--
-- AUTO_INCREMENT для таблицы `currency`
--
ALTER TABLE `currency`
MODIFY `uid` int(4) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT для таблицы `date`
--
ALTER TABLE `date`
MODIFY `uid` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=8;
--
-- AUTO_INCREMENT для таблицы `regnum`
--
ALTER TABLE `regnum`
MODIFY `uid` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=678;
--
-- AUTO_INCREMENT для таблицы `type`
--
ALTER TABLE `type`
MODIFY `uid` int(4) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=7;
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742548
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитри4, странно выглядит вынос дат в отдельную таблицу. Если вам необходимо хранить документ-источник, то сделайте дату атрибутом документа (чем она и является).
Хотя... вчитался внимательнее. Таблица "дат" - это НСД таблица документов? Запутывание следов 80 уровня :)
В остальном вроде нормально, но вы учтите, что мы так и не знаем вашей задачи, т.е. каким образом эти данные будут использоваться, какие к ним могут быть запросы.
PS. какой в дупу "bet"? это же не ипподром...
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742592
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirТаблица "дат" - это НСД таблица документов?
что такое НСД?


Есть 1000 XML файлов вида как приведено выше.
Задача:
Сохранить из XML файла данные в базу чтобы в дальнейшем была возможность выполнить сортировку или поиск.

я незнаю как уже объяснить.....
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742806
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитри4,

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

на данный момент из всего что я понял у меня складывается впечатление, что вы хотите видеть таблицу типа такой:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
create table svod_bank_acc_offer
(
    bankIdReg int, 
    bankTit txt,
    dateTag date,

    rate_rur_dep_0 real,
    rate_rur_dep_90 real,
    rate_rur_dep_180 real,
    rate_rur_dep_360 real,
    rate_rur_dep_1080 real,
    rate_rur_dep_1080_over real,

    rate_usd_dep_0 real,
    rate_usd_dep_90 real,
    rate_usd_dep_180 real,
    rate_usd_dep_360 real,
    rate_usd_dep_1080 real,
    rate_usd_dep_1080_over real,

    rate_eur_dep_0 real,
    rate_eur_dep_90 real,
    rate_eur_dep_180 real,
    rate_eur_dep_360 real,
    rate_eur_dep_1080 real,
    rate_eur_dep_1080_over real

)



и если так, то я никак не могу понять нахера городить огород из кучи хер знает каких таблиц, если можно обойтись всего одной
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742862
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если бы у меня было бы виденее базы данных я бы не спрашивал тут какую структуру выбрать.
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742879
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитри4если бы у меня было бы виденее базы данных я бы не спрашивал тут какую структуру выбрать.

из всего что вы на данный момент объяснили вам не нужна никакая "БАЗА", а достаточно всего одной таблицы из 21 колонки)))
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742906
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LumixДмитри4если бы у меня было бы виденее базы данных я бы не спрашивал тут какую структуру выбрать.

из всего что вы на данный момент объяснили вам не нужна никакая "БАЗА", а достаточно всего одной таблицы из 21 колонки)))
Что-то не подсказывает это не совсем нормальное решение
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742915
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитри4Что-то не подсказывает это не совсем нормальное решение

вам пока ничего не может подсказывать, потому что вы до сих пор ещё не составили пример как должен выглядеть результат всей вашей задачи

ваша ошибка состоит в том, что вы сели за клавиатуру ещё до того как у вас появился образ того, что вы хотите получить в итоге
проще говоря, вы сели за работу без оплаченного заказа от клиента)))
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38742931
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все ясно, тема закрыта
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38743743
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитри4что такое НСДна самом деле

Дмитри4Задача:
Сохранить из XML файла данные в базу чтобы в дальнейшем была возможность выполнить сортировку или поиск.сортировку по каким параметрам?
поиск по каким параметрам?
в текущей формулировке можно посоветовать сгружать эти файлы в единственное blob/text поле единственной таблицы, и хрен кто докажет, что это неправильно...
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38744115
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirсортировку по каким параметрам?
нужна будет сортировка по валюте и типу вклада , при этом не нужно выводить только одну валюту один вклад
задача выбрать всю информацию по каждому банку , отсортировать по критериям пользователя и вывести на экран.

tanglirпоиск по каким параметрам?
к примеру по наименованию банка\рег номеру
tanglirв текущей формулировке можно посоветовать сгружать эти файлы в единственное blob/text поле единственной таблицы
будет неудобно для сортировки
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38744159
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
CREATE TABLE IF NOT EXISTS `archive` (
  `id` int(11) NOT NULL,
  `id_bank` bigint(15) NOT NULL,
  `id_currency` tinyint(5) NOT NULL,
  `id_dep_type` tinyint(5) NOT NULL,
  `rate` decimal(6,4) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=12655 DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `banks` (
  `id` int(11) NOT NULL,
  `name` varchar(200) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=681 DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `currency` (
  `id` int(4) NOT NULL,
  `name_short` varchar(11) NOT NULL,
  `xml` varchar(15) NOT NULL,
  `name_long` varchar(50) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `doc` (
  `id` int(11) NOT NULL,
  `num` bigint(11) NOT NULL -- номер документа
  `dt` date NOT NULL -- дата документа
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `dep_type` ( -- ЯНП, нахрена тут была ставка, если они хранятся в архиве
  `id` int(4) NOT NULL,
  `xml` varchar(50) NOT NULL,
  `name` varchar(100) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;



PS.вы уверены, что вам нужен именно муисам, а не инно?
PPS.Дмитри4задача выбрать всю информацию по каждому банкупокажите мне пользователся, которому необходимо (которой способен работать с) более 50 записей единовременно (с)
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38744503
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirPS.вы уверены, что вам нужен именно муисам, а не инно?


Для таких данных что лучше?
...
Рейтинг: 0 / 0
выборка.... и сортировка
    #38744795
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитри4, майисам кагбэ уже давно устаревший движок. Мне даже сложно сказать, в каком случае его можно предпочеть инно - ну разве что у вас старая версия мускля и нужен фултекстовый поиск, но это явно не ваш случай.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / выборка.... и сортировка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]