|
Вопрос по SQLite
|
|||
---|---|---|---|
#18+
Есть такая таблица: Abonent;Organiz_abonenta;regn_abonenta;vrema_end;vrema_start;vrema_chist;razrid;MestoПетров В.В.;"ООО ""Спектр""";1;15:00:45;15:00:00;0:00:45;6;Иванов В.А.;"ООО ""Заря""";2;;15:00:30;;4;Сидоров;"ООО ""Интер""";3;15:00:30;15:01:00;0:00:30;0:00:00; подскажите, какой запрос нужно написать, что бы получить следующее: Nomer;Abonent;Organiz_abonenta;regn_abonenta;vrema_end;vrema_start;vrema_chist;razrid;Mesto1;Сидоров;"ООО ""Интер""";3;15:00:30;15:01:00;0:00:30;2;12;Петров В.В.;"ООО ""Спектр""";1;15:00:45;15:00:00;0:00:45;6;23;Иванов В.А.;"ООО ""Заря""";2;;15:00:30;;4;- ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 23:44 |
|
Вопрос по SQLite
|
|||
---|---|---|---|
#18+
AbonentOrganiz_abonentaregn_abonentavrema_endvrema_startvrema_chistrazridMestoПетров В.В."ООО ""Спектр"""115:00:4515:00:000:00:456Иванов В.А."ООО ""Заря"""215:00:304Сидоров"ООО ""Интер"""315:00:3015:01:000:00:300:00:00 нужно получить такое: NomerAbonentOrganiz_abonentaregn_abonentavrema_endvrema_startvrema_chistrazridMesto1Сидоров"ООО ""Интер"""315:00:3015:01:000:00:30212Петров В.В."ООО ""Спектр"""115:00:4515:00:000:00:45623Иванов В.А."ООО ""Заря"""215:00:304- ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 23:47 |
|
Вопрос по SQLite
|
|||
---|---|---|---|
#18+
Не совсем понятно, что именно тебе нужно. Получить нужный порядок? Или сделать столбец-нумератор, нумерующий записи в итоговом наборе данных в соответствие с этим порядком? В целом, столбец нумератор получают одним из следующих способов: 1) Коррелированный запрос в SELECT-листе 2) SELF-JOIN таблицы по неэквиусловию. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2007, 05:08 |
|
Вопрос по SQLite
|
|||
---|---|---|---|
#18+
Бабичев СергейНе совсем понятно, что именно тебе нужно. Получить нужный порядок? Или сделать столбец-нумератор, нумерующий записи в итоговом наборе данных в соответствие с этим порядком? В целом, столбец нумератор получают одним из следующих способов: 1) Коррелированный запрос в SELECT-листе 2) SELF-JOIN таблицы по неэквиусловию. На твоих тестовых данных: 1) Коррелированный подзапрос: Код: 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. 30. 31. 32. 33. 34. 35.
2) SELF-JOIN: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2007, 05:55 |
|
Вопрос по SQLite
|
|||
---|---|---|---|
#18+
Бабичев Сергей Бабичев СергейНе совсем понятно, что именно тебе нужно. Получить нужный порядок? Или сделать столбец-нумератор, нумерующий записи в итоговом наборе данных в соответствие с этим порядком? В целом, столбец нумератор получают одним из следующих способов: 1) Коррелированный запрос в SELECT-листе 2) SELF-JOIN таблицы по неэквиусловию. На твоих тестовых данных: 1) Коррелированный подзапрос: Код: 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. 30. 31. 32. 33. 34. 35.
2) SELF-JOIN: Код: 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.
Не получается как описано. Таблица получается такая: nomerAbonentOrganiz_abonentaregn_abonentavrema_startvrema_endvrema_chistrazridmesto1Иванов В.А."ООО ""Заря"""215:00:30412Петров В.В."""ООО """"Спектр"""115:00:0015:00:450:00:45623Сидоров C.C."ООО ""Интер"""315:01:0015:02:000:01:0033 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2007, 22:36 |
|
Вопрос по SQLite
|
|||
---|---|---|---|
#18+
Приведи полное описание полей таблицы с указанием их типа. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2007, 05:02 |
|
Вопрос по SQLite
|
|||
---|---|---|---|
#18+
Бабичев СергейПриведи полное описание полей таблицы с указанием их типа.Если что, то интерес вызывает поле vrema_chist. Я предполагал, что оно имеет символьный тип (VARCHAR / CHAR). Если это тип TIME, то нужно немного подкорректировать значение по умолчанию в функции COALESCE. Вместо строковой константы '9:99:99' нужно подставить такое значение, которое является максимально допустимым для типа TIME. Как вариант - придумать другой способ сравнения NULL-значения в поле vrema_chist с не NULL-значением. Причем таким образом, чтобы записи с vrema_chist IS NULL получались с бОльшими номерами, чем записи с непустым значением в этом поле ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2007, 08:01 |
|
Вопрос по SQLite
|
|||
---|---|---|---|
#18+
Бабичев СергейПриведи полное описание полей таблицы с указанием их типа. Таблица sorev вот такая: CREATE TABLE sorev (Abonent VARCHAR(40) NULL,Organiz_abonenta VARCHAR(50) NULL,regn_abonenta VARCHAR(4) NULL,vrema_start TIME NULL,vrema_end TIME NULL,vrema_chist TIME NULL,razrid VARCHAR(3) NULL); INSERT INTO sorev (Abonent,Organiz_abonenta,regn_abonenta,vrema_start,vrema_end,vrema_chist,razrid) VALUES ('Петров В.В.','ООО "Спектр"','1','15:00:00','15:00:45','00:00:45','4'); INSERT INTO sorev (Abonent,Organiz_abonenta,regn_abonenta,vrema_start,vrema_end,vrema_chist,razrid) VALUES ('Иванов В.А.','ООО "Заря"','2','15:00:30','','','2'); INSERT INTO sorev (Abonent,Organiz_abonenta,regn_abonenta,vrema_start,vrema_end,vrema_chist,razrid) VALUES ('Сидоров С.С.','ООО "Интер"','3','15:01:00','15:01:30','00:00:30','2'); Нужно отсортировать по колонке vrema_chist при этом NULL должны быть в конце таблицы и добавить при выводе колонки Nomer и Mesto, при этом в коленке Mesto где строка vrema_chist = NULL не должны быть пронумерованы. Вот пример: NomerAbonentOrganiz_abonentaregn_abonentavrema_startvrema_endvrema_chistrazridMesto1Сидоров С.С.ООО "Интер"315:01:0015:01:3000:00:30212Петров В.В.ООО "Спектр"115:00:0015:00:4500:00:45423Иванов В.А.ООО "Заря"215:00:302 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2007, 01:52 |
|
Вопрос по SQLite
|
|||
---|---|---|---|
#18+
Добился того, что бы сортировка была по vrema_chist , с сортировкой в конце vrema_chist = null select * from sorev order by case when vrema_chist = '' then 1 else 0 end, vrema_chist ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2007, 15:05 |
|
|
start [/forum/topic.php?fid=54&msg=34699753&tid=2009509]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 347ms |
total: | 595ms |
0 / 0 |