1

Тема: як створити view таблицю з додатковим стовбцем для нумерування

як створити view таблицю з додатковим стовбцем для нумерування серій записів,
з умовою що усі записі які приходять потрібно розбити по серіях по 50 штук.
і номер тих серій присвоїти рядкам.

тобто в результаті повинно вийти :
1 ***  1
2 ***  1
.......
50*** 1
51*** 2
і тд.
або запропонуйте свій варяант без додаткової тиблиці
на перед вдячний

2

Re: як створити view таблицю з додатковим стовбцем для нумерування

де створити?))

3

Re: як створити view таблицю з додатковим стовбцем для нумерування

Exel

4

Re: як створити view таблицю з додатковим стовбцем для нумерування

фу) пробачте
якби постгрес чи мускуль, чи скульлайт -- тут, ймовірно, я зміг би допомогти

5 Востаннє редагувалося varkon (21.03.2018 20:43:41)

Re: як створити view таблицю з додатковим стовбцем для нумерування

lybik53 написав:

як створити view таблицю з додатковим стовбцем для нумерування серій записів,
з умовою що усі записі які приходять потрібно розбити по серіях по 50 штук.
і номер тих серій присвоїти рядкам.

тобто в результаті повинно вийти :
1 ***  1
2 ***  1
.......
50*** 1
51*** 2
і тд.
або запропонуйте свій варяант без додаткової тиблиці
на перед вдячний

будь ласка поясніть що ви маєте на увазі. Що таке "серії", яким чином вони повинні бути сформовані. Що таке у вашому розумінні "view"?
З того що ви написали - вам потрібно створити макрос, який записує число в клітинку в стовпчику та інкрементує його кожні 50 рядків. Можливо це також можна зробити формулою. Якщо річ звичайно йде про ексель.

6 Востаннє редагувалося lybik53 (22.03.2018 10:25:20)

Re: як створити view таблицю з додатковим стовбцем для нумерування

уточняю, мова про sql запит
серія це всі записи поділити на частинки по 50 записів
тобто усі дані які є  в таблиці залишаються а потім потрібно додати стовпчик з номером отої серії(1-50 = 1 серія, 51-100= 2 і тд.)
view- це в мому розумінні

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

7

Re: як створити view таблицю з додатковим стовбцем для нумерування

Питання:
- номери в таблиці строго послідовні, чи можуть бути пропуски? Якщо пропуски виникають у подальшому, серії треба перенумеровувати чи ні?
- номери серій визначаються для вихідної таблиці чи по-різному, залежно від умови в WHERE?
- вам потрібен саме номер серії чи це проміжне значення для якоїсь іншої задачі, яку вам треба вирішити, скажімо, пагінації?

8

Re: як створити view таблицю з додатковим стовбцем для нумерування

в excel завезли sql ?  :o

9

Re: як створити view таблицю з додатковим стовбцем для нумерування

221VOLT написав:

в excel завезли sql ?  :o

Ні, про Excel написала інша людина.

10

Re: як створити view таблицю з додатковим стовбцем для нумерування

хоча...
https://docs.microsoft.com/en-us/azure/ … nect-excel
https://docs.microsoft.com/en-us/sql/re … cel-to-sql

11

Re: як створити view таблицю з додатковим стовбцем для нумерування

lybik53 написав:

уточняю, мова про sql запит
серія це всі записи поділити на частинки по 50 записів
тобто усі дані які є  в таблиці залишаються а потім потрібно додати стовпчик з номером отої серії(1-50 = 1 серія, 51-100= 2 і тд.)
view- це в мому розумінні

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

"поділити на частинки по 50 записів" - це просто ROW_NUMBER, або спираючись на данні які зберігаються в таблиці? Сформулюйте будь ласка що ви хочете, чому з вас потрібно витягувати це кліщами? Також я сподіваюсь що ви розумієте - у БД завдання "вибрати підряд 50 рядків" - безглузде.

12

Re: як створити view таблицю з додатковим стовбцем для нумерування

221VOLT написав:

в excel завезли sql ?  :o

з файлом в екскелі можна працювати як з БД.

13

Re: як створити view таблицю з додатковим стовбцем для нумерування

varkon написав:

Також я сподіваюсь що ви розумієте - у БД завдання "вибрати підряд 50 рядків" - безглузде.

Не безглузде, а просто порушує 1НФ.

14

Re: як створити view таблицю з додатковим стовбцем для нумерування

koala написав:
varkon написав:

Також я сподіваюсь що ви розумієте - у БД завдання "вибрати підряд 50 рядків" - безглузде.

Не безглузде, а просто порушує 1НФ.

а як воно то порушує?

Перша нормальна форма (1НФ, 1NF) утворює ґрунт для структурованої схеми баз даних:

  • Кожна таблиця повинна мати основний ключ: мінімальний набір колонок, які ідентифікують запис.

  • Уникнення повторень груп (категорії даних, що можуть зустрічатись різну кількість раз в різних записах) правильно визначаючи неключові атрибути.

  • Атомарність: кожен атрибут повинен мати лише одне значення, а не множину значень.

воно ж, наче, розповідає про структуру бд, а не про запити

15

Re: як створити view таблицю з додатковим стовбцем для нумерування

koala написав:

Питання:
- номери в таблиці строго послідовні, чи можуть бути пропуски? Якщо пропуски виникають у подальшому, серії треба перенумеровувати чи ні?
- номери серій визначаються для вихідної таблиці чи по-різному, залежно від умови в WHERE?
- вам потрібен саме номер серії чи це проміжне значення для якоїсь іншої задачі, яку вам треба вирішити, скажімо, пагінації?

1- так строго послідовні, пропусків в послідовності не буде
2- номери серій визначаються від вихідної таблиці
3- тільки номер серії

16

Re: як створити view таблицю з додатковим стовбцем для нумерування

На англійській Вікі дається в кінці ще й визначення Дейта:

  • There's no top-to-bottom ordering to the rows.

  • There's no left-to-right ordering to the columns.

  • There are no duplicate rows.

  • Every row-and-column intersection contains exactly one value from the applicable domain (and nothing else).

  • All columns are regular [i.e. rows have no hidden components such as row IDs, object IDs, or hidden timestamps].

Тут, власне, порушується перша умова.

Подякували: FakiNyan1

17 Востаннє редагувалося koala (22.03.2018 13:20:45)

Re: як створити view таблицю з додатковим стовбцем для нумерування

lybik53 написав:
koala написав:

Питання:
- номери в таблиці строго послідовні, чи можуть бути пропуски? Якщо пропуски виникають у подальшому, серії треба перенумеровувати чи ні?
- номери серій визначаються для вихідної таблиці чи по-різному, залежно від умови в WHERE?
- вам потрібен саме номер серії чи це проміжне значення для якоїсь іншої задачі, яку вам треба вирішити, скажімо, пагінації?

1- так строго послідовні, пропусків в послідовності не буде
2- номери серій визначаються від вихідної таблиці
3- тільки номер серії

В такому разі номер серії точно дорівнює цілій частині від номеру запису, діленого на 50. Для смаку можете додати 1 і відняти перед діленням (у вас же все з 1 починається?)

SELECT *, FLOOR((id-1)/50)+1 AS series
FROM table_name
Подякували: lybik531

18

Re: як створити view таблицю з додатковим стовбцем для нумерування

lybik53 написав:

як створити view таблицю з додатковим стовбцем для нумерування серій записів,
з умовою що усі записі які приходять потрібно розбити по серіях по 50 штук.
і номер тих серій присвоїти рядкам.

тобто в результаті повинно вийти :
1 ***  1
2 ***  1
.......
50*** 1
51*** 2
і тд.
або запропонуйте свій варяант без додаткової тиблиці
на перед вдячний

Через процедуру. По запису переписувати та номерувати.

19 Востаннє редагувалося Мишко (25.07.2018 15:04:28)

Re: як створити view таблицю з додатковим стовбцем для нумерування

Якщо у Вашій таблиці відсутня нумерація рядків (записів), то для штучного створення нумерації записів можна використати вкладені запити. Нехай для таблиці товарів (Products) треба отримати пронумерований перелік назв (поле ProductName).

І варіант:

SELECT
    (Select Sum(1) FROM Products As p WHERE p.ProductName<=p1.ProductName) AS [Номер], p1.ProductName as [Назва]
FROM
    Products AS p1
ORDER BY
    p1.ProductName;

ІІ варіант:

SELECT
    (Select Count(*) FROM Products As p WHERE p.ProductName<=p1.ProductName) AS [Номер], p1.ProductName as [Назва]
FROM
    Products AS p1
ORDER BY
    p1.ProductName;