|
|
|
Работа с таблицей
|
|||
|---|---|---|---|
|
#18+
Предположим, что мы создали таблицу присутствия сотрудников на рабочих местах. В этой таблице именами строк являются и фамилии сотрудников, а именами столбцов являются даты. В каждом поле таблицы мы вносим какой-то символ, который показывает, был ли сотрудник на работе или отсутствовал в этот день. (Например, если сотрудник был на работе, то ставиться цифра 8, если болел. То цифра 1, если был в отпуске, то цифра 2 и т.д.) Т.е. мы имеем таблицу, которая является самым банальным табелем, который есть в любой организации. Из таблицы такого вида командой SELECT мы можем составить любую статистику по отношению к конкретному работнику, т.е. узнать например, болел ли он в данный отрезок времени, сколько дней был в командировке и т.д. Это возможно потому, что SQL работает со строками ( записями) Если же мы хотим узнать статистику другого вида, которая связана с обработкой столбцов, например узнать имена сотрудников, которые были в командировке в указанный день или количество сотрудников, болевших в этот день, то мы командой SELECT этого сделать не сможем, т.к. команда SELECT ( да и вообще почти все команды работы с таблицами) со столбцами не работают. Вопрос: что надо делать в таком случае, когда надо сделать выборку по столбцам? Параллельно к данной таблице создавать инвертированную таблицу? Или написать для обработки программу с циклами на другом языке программирования? Или существует какая-либо ещё возможность, которая мне неизвестна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2004, 16:12 |
|
||
|
Работа с таблицей
|
|||
|---|---|---|---|
|
#18+
автор. команда SELECT ( да и вообще почти все команды работы с таблицами) со столбцами не работают хм... правда...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2004, 16:19 |
|
||
|
Работа с таблицей
|
|||
|---|---|---|---|
|
#18+
Ваша таблица неправильно спроектирована. Вы что, каждый день добавляете новый столбец? И что вы собираетесь делать если понадобится хранить доб. информацию типа количества часов? Более разумно ее нормализовать и сделать добавочную таблицу. create table tabel ( person int, -- ссылка на табельный номер сотрудника dt date, -- дата к которой относится запись kind enum('bolen','OK','otpusk','4to tam esche nado'), -- что он делал в этот день hours int, -- количество отработанных часов в этот день ( это например) ну тут индексы по вкусу) вам придется немного больше потрудиться, чтобы распечатать табель в том виде, как его привыкли видеть бухгалтера, зато вы в дальнейшем получите гораздо меньше гемороя с сопровождением и использованием этой информации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2004, 16:24 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32753215&tid=1854684]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
191ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 478ms |

| 0 / 0 |
