Forums.Avtograd.Ru: SQL и Базы Данных - Forums.Avtograd.Ru

Перейти к содержимому

  • (16 Страниц)
  • +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

SQL и Базы Данных

#1 Пользователь офлайн   musashi

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 573
  • Регистрация: 01 Ноябрь 07

Отправлено 05 Ноябрь 2007 - 03:38

собственно сабж
0


  • (16 Страниц)
  • +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Другие ответы в этой теме

#2 Пользователь офлайн   musashi

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 573
  • Регистрация: 01 Ноябрь 07

Отправлено 05 Ноябрь 2007 - 03:45

вопрос к знатокам

предисловие:
в общем есть Договор, у Договора есть Двери, у Дверей могут быть доп. Материалы

так вот, необходимо вывести общую сумму по договору = сумма двери + (если есть) доп. материалы
запрос реализован, НО, если доп. материалы по одной из дверей договора отсутствуют, то соответсвтвенно неготорые договора невыводятся
SELECT agreement.id_agreement, sum(material.summa) + agreement_door.summa AS osum
FROM ((agreement
INNER JOIN agreement_door ON agreement_door.id_agreement=agreement.id_agreement)
INNER JOIN agreement_door_material ON agreement_door_material.id_agreement_door=agreement_door.id_agreement_door)
INNER JOIN material ON agreement_door_material.id_material=material.id_material
GROUP BY agreement.id_agreement, agreement_door.summa;


БД Access

помогите =)
0

#3 Пользователь офлайн   AlterEgo

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 138
  • Регистрация: 01 Ноябрь 07

Отправлено 05 Ноябрь 2007 - 13:05

left join используй для линковки таблиц, в которых может и не быть соответствующих строк

да сосбна, в этом случае имхо лучше вложенный запрос заюзать вместо связки left join + group by - так оно проще будед и быстрее
0

#4 Пользователь офлайн   musashi

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 573
  • Регистрация: 01 Ноябрь 07

Отправлено 05 Ноябрь 2007 - 14:55

имхо LEFT не выход, договор выводится, а в поле сумма пусто

SELECT agreement.id_agreement, sum(material.summa) + agreement_door.summa AS osum
FROM ((agreement
INNER JOIN agreement_door ON agreement_door.id_agreement=agreement.id_agreement)
LEFT JOIN agreement_door_material ON agreement_door_material.id_agreement_door=agreement_door.id_agreement_door)
LEFT JOIN material ON agreement_door_material.id_material=material.id_material
GROUP BY agreement.id_agreement, agreement_door.summa;


AlterEgo покажи как бы ты сделал с подзапросом
0

#5 Пользователь офлайн   AlterEgo

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 138
  • Регистрация: 01 Ноябрь 07

Отправлено 05 Ноябрь 2007 - 17:39

Просмотр сообщенияmusashi (5.11.2007, 14:55):

имхо LEFT не выход, договор выводится, а в поле сумма пусто


дык если null с чем угодно сложить - null и получится =)
iif(isnull(sum(material.summa)), 0, sum(material.summa)) - так попробуй
0

#6 Пользователь офлайн   musashi

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 573
  • Регистрация: 01 Ноябрь 07

Отправлено 06 Ноябрь 2007 - 00:17

AlterEgo, спасибо помогло
даже не думал, что в Access, IF в запросе числится как IIF - извращенство
0

#7 Пользователь офлайн   musashi

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 573
  • Регистрация: 01 Ноябрь 07

Отправлено 11 Январь 2008 - 22:47

поставил Oracle10gR2 по custom'у выбрал Enterprise

поставилось нормально

запускаю SQLPlus пробую авторизироваться, мне в ответ:
ORA-12560: TNS: ошибка адаптера протокола

че делать?

спасибо
0

#8 Пользователь офлайн   [ Seamni ]

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 102
  • Регистрация: 01 Ноябрь 07

Отправлено 12 Январь 2008 - 18:34

листенер с сервисом базы то запущены?
0

#9 Пользователь офлайн   musashi

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 573
  • Регистрация: 01 Ноябрь 07

Отправлено 13 Январь 2008 - 12:08

Просмотр сообщения[ Seamni ] (12.1.2008, 18:34):

листенер с сервисом базы то запущены?

из процессов запущены только:
- oracle.exe занимает памяти совсем чуть-чуть 10 mb
- ocssd.exe 13 mb
-- дочерний ocssd.exe 4 mb
0

#10 Пользователь офлайн   Barrabas

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 431
  • Регистрация: 01 Ноябрь 07

Отправлено 13 Январь 2008 - 21:30

Просмотр сообщенияmusashi (13.1.2008, 12:08):

из процессов запущены только:
- oracle.exe занимает памяти совсем чуть-чуть 10 mb
- ocssd.exe 13 mb
-- дочерний ocssd.exe 4 mb

службы запущенные проверь
0

#11 Пользователь офлайн   musashi

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 573
  • Регистрация: 01 Ноябрь 07

Отправлено 13 Январь 2008 - 23:21

запущенные службы:
- OracleASMService+ASM (e:\orahome_1\bin\ORACLE.EXE +ASM)
- OracleCSService (e:\OraHome_1\bin\ocssd.exe service)

только эти нашел в службах они же и были описаны выше!
0

#12 Пользователь офлайн   Barrabas

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 431
  • Регистрация: 01 Ноябрь 07

Отправлено 14 Январь 2008 - 00:17

Просмотр сообщенияmusashi (13.1.2008, 23:21):

запущенные службы:
- OracleASMService+ASM (e:\orahome_1\bin\ORACLE.EXE +ASM)
- OracleCSService (e:\OraHome_1\bin\ocssd.exe service)

только эти нашел в службах они же и были описаны выше!


ну а листер где? Запусти его. Странно обычно штук 5 или 6 служб должно появлятьс я после установки, можек поставил както криво, у меня оракла ставится тупо нажатиями "далее" и сразу работает.
в тнснэймс все правильно прописано?
0

#13 Пользователь офлайн   musashi

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 573
  • Регистрация: 01 Ноябрь 07

Отправлено 15 Январь 2008 - 18:41

Просмотр сообщенияBarrabas (14.1.2008, 0:17):

ну а листер где? Запусти его. Странно обычно штук 5 или 6 служб должно появлятьс я после установки, можек поставил както криво, у меня оракла ставится тупо нажатиями "далее" и сразу работает.
в тнснэймс все правильно прописано?

блин, я ж говорю, поставил вариант Enterprise на 650 Мб, если ставить по дефолту, вся установка весит примерно 1500 Мб и память жрет =)

листенера нету

тнснеймс фиг знает где найти (были лекции в универе, неходил =) )
0

#14 Пользователь офлайн   Barrabas

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 431
  • Регистрация: 01 Ноябрь 07

Отправлено 15 Январь 2008 - 19:48

Просмотр сообщенияmusashi (15.1.2008, 19:41):

блин, я ж говорю, поставил вариант Enterprise на 650 Мб, если ставить по дефолту, вся установка весит примерно 1500 Мб и память жрет =)

листенера нету

тнснеймс фиг знает где найти (были лекции в универе, неходил =) )

...\NETWORK\ADMIN\
про память не понял чегото, а так не жрет типа :)
останавливаешь просто все оракловые службы, делаешь запуск их ручным и создаешь 2 бат файла, один гасит службы, другой запускает

для запуска
net start "OracleOraDb10g_home1iSQL*Plus"
net start "OracleOraDb10g_home1TNSListener"
net start "OracleServiceORCL"

для остановки
net stop "OracleOraDb10g_home1iSQL*Plus"
net stop "OracleOraDb10g_home1TNSListener"
net stop "OracleServiceORCL"

названия смотри у себя в службах

а про интерпрайс установку не знаю, не пробовал так ставить
0

#15 Пользователь офлайн   |PASHAN|

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 33
  • Регистрация: 01 Ноябрь 07

Отправлено 24 Январь 2008 - 15:15

Вопрос:
MySQL

Есть ссылки
[предыдущая] [следующая]

Как вычислить id для этих ссылок?

В id могут быть дыры
|id|.....|....|
|1 |.....|....|
|4 |.....|....|
|12|....|....|
0

#16 Пользователь офлайн   |PASHAN|

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 33
  • Регистрация: 01 Ноябрь 07

Отправлено 24 Январь 2008 - 23:08

Пред:
SELECT * FROM 'table' WHERE 'id'<$my_id ORDER BY 'id' DESC LIMIT 1


След:
SELECT * FROM 'table' WHERE 'id'>$my_id ORDER BY 'id' ASC LIMIT 1


У кого есть более производительные предложения?
0

#17 Пользователь офлайн   Barrabas

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 431
  • Регистрация: 01 Ноябрь 07

Отправлено 29 Январь 2008 - 00:38

Просмотр сообщения|PASHAN| (25.1.2008, 0:08):

Пред:
SELECT * FROM 'table' WHERE 'id'<$my_id ORDER BY 'id' DESC LIMIT 1


След:
SELECT * FROM 'table' WHERE 'id'>$my_id ORDER BY 'id' ASC LIMIT 1


У кого есть более производительные предложения?

мускула нет чтоб проверять. Можно попробовать MAX и MIN заюзать вместо ORDER BY 'id' ASC LIMIT 1.
0

#18 Пользователь офлайн   Macro-Y

  • Активный пользователь
  • PipPipPip
  • Группа: Пользователи
  • Сообщений: 844
  • Регистрация: 01 Ноябрь 07

Отправлено 13 Февраль 2008 - 17:49

А как поставить многострочный комментарий в Oracle ? Интернета у меня нету :)
0

#19 Пользователь офлайн   Barrabas

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 431
  • Регистрация: 01 Ноябрь 07

Отправлено 14 Февраль 2008 - 10:41

Просмотр сообщенияMacro-Y (13.2.2008, 18:49):

А как поставить многострочный комментарий в Oracle ? Интернета у меня нету :)

/* .............
...............
.......... */
0

#20 Пользователь офлайн   Воитель

  • Пользователь
  • PipPip
  • Группа: Пользователи
  • Сообщений: 226
  • Регистрация: 01 Ноябрь 07

Отправлено 30 Март 2008 - 20:52

У меня вопрос как создавать MySQL, точнее через какую программу?
есть для sql что-то наподобие аксэса?
0

  • (16 Страниц)
  • +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей