Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
Есть таблица t(Room,Row,TableColor,DataColumn) Room - это класс, Row - ряд, а TableColor - ID цветов парт, DataColumn - колонка с данными. TableColor может принимать значения 1,2,3,4,5. Необходимо дополнить таблицу так, чтобы если в заданном классе и заданном ряду нет парт с цветом из списка, в теблице все равно появилась бы строчка c недостающим цветом и нулевым значением в колонке DataColumn Пример: RoomRowTableColorDataColumn111300114600 После выполнения запроса должно быть RoomRowTableColorDataColumn111300112011301146001150 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2005, 17:51 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
Под SQL Server, правда, но думаю что разницы с Sybase нет Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Можно и без #t обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2005, 18:51 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
S4etovod, то что надо, благодарю. А все-таки интересно, а как без #t, в которой таблички перемножаются, обойтись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 09:42 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
Кстати, небольшое исправление -- Или так: -- insert t select * from #t -- where not exists( select * from t where t.room = #t.room and t.row = #t.row and t.TableColor=#t.TableColor) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 10:26 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
PumpkinHeadКстати, небольшое исправление -- Или так: -- insert t select * from #t -- where not exists( select * from t where t.room = #t.room and t.row = #t.row and t.TableColor=#t.TableColor) Конечно. Склероз... %-((( Писал от фонаря, SQL Server'а дома не держу, ещё не хватало :-) PumpkinHeadА все-таки интересно, а как без #t, в которой таблички перемножаются, обойтись? Думаю что никак. Вот можно сократить #t до Код: plaintext Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 02:50 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
Для ASA9 будет просто: Код: plaintext 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. INSERT ON EXISTS SKIP добавит только те записи, значение которых по PK нет в таблице, а так как у нас в таблице PK: Room, Row, TableColor - то как раз и добавяться недостающие цвета по 1 комнате и 1 ряду. "sa_rowgenerator" - системная хранимая процедура. Она сгенерирует набор данных с полем row_num в указанном параметрами диапазоне. Вообще, если TableColor используется часто, то имеет смысл вынести его в отдельную нормальную таблицу с записями. Или в крайнем случае в представление типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 06:24 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
ASCRUS, а конструкция INSERT ON EXISTS SKIP специфична для ASA9? В MS SQL Server такого вроде нет? :..-( PS: Время отправки Вашего поста - 06:24. Если в 9 утра программист м.б. только ещё на работе, но не уже , то Вы в 06:24, видимо, ещё ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 12:18 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
S4etovod wrote: > а конструкция *INSERT ON EXISTS SKIP* специфична для ASA9? ASA 8.0.2 и выше. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 12:19 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
ASCRUS, Большое спасибо за пример, очень любопытно. Правда, я нарушил правила форума и не назвал сервер - ASE12. Каюсь, что я недостаточно четко сформулировал задачу. Речь на самом деле шла о том, чтобы дополнять таблицу строками не по конкретной комбинации Room+Row, а по всем, по которым есть хоть одна строчка в таблице. То есть я хотел на самом деле, чтобы резульат был не такой, как получился у Вас (но Вы решили немного другую задачу по моей вине, кстати), а вот какой (на Ваших тестовых данных) : RoomRowTableColorDataColumn111300 1120 1130 114600 11501210 122100 12301240125200 Вариант S4etovod-а под ASE12 эту задачу решает. Получится ли у ASA сделать это красиво? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 18:35 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
Берем за основу мой пример, меняем только сам код добавления записей: Код: plaintext 1. 2. 3. 4. 5. 6. 7. RoomRowTableColorDataColumn111300112011301146001150121012210012301240125200 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2005, 08:41 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
На TSQL ASA, который для совместимости с MSSQL и ASE не имеет наворотов WatcomSQL, это выглядело бы так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2005, 08:49 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
S4etovodPS: Время отправки Вашего поста - 06:24. Если в 9 утра программист м.б. только ещё на работе, но не уже , то Вы в 06:24, видимо, ещё ;-) Я не с работы писал этот пост, а с дома. Обычно по будням я где то в 5 утра встаю, есть время поделать свои дела до работы ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2005, 08:50 |
|
||
|
Задача про цвета парт
|
|||
|---|---|---|---|
|
#18+
Sorry. Ещё раз. ASCRUS S4etovodPS: Время отправки Вашего поста - 06:24. Если в 9 утра программист м.б. только ещё на работе, но не уже , то Вы в 06:24, видимо, ещё ;-) Я не с работы писал этот пост, а с дома. Обычно по будням я где то в 5 утра встаю, есть время поделать свои дела до работы ;) В 5 утра... по будням... Бррр... Я-то думал, что физиологически оптимальный график по будням - вставать в 10 (утра), на работе с 12 до 20-22, потом свободное время и в койку в 2-3ч. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2005, 13:54 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33269864&tid=2013384]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 390ms |

| 0 / 0 |
