Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Нужен совет По MS SQL

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> Нужен совет По MS SQL
Имя
Сообщение << Старые топики   Новые топики >>
Нужен совет По MS SQL - 2007-08-29 10:45:38.540000   
Translyator

Сообщений: 359
Оценки: 0
Присоединился: 2007-08-17 12:32:54.773333

select distinct c.job_id, h.job_id,
(h.amount/(select distinct sum(h.amount) from hours h  where h.job_id=c.job_id and c.typeof=3 and h.typeof=2 group by h.job_id)*c.amount) as deprcost
from hours h, costs c
where h.job_id=c.job_id and c.typeof=3 and h.typeof=2
  
 
как мне полученный  deprcost использовать в другом запросе
т.е создать к нему ссылку заранее всем спасибо
SQl  занимался около недели поэтому неумен

Post #: 1
RE: Нужен совет По MS SQL - 2007-08-29 11:01:29.336666   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
quote:

ORIGINAL: Translyator

select distinct c.job_id, h.job_id,
(h.amount/(select distinct sum(h.amount) from hours h&nbsp; where h.job_id=c.job_id and c.typeof=3 and h.typeof=2 group by h.job_id)*c.amount) as deprcost
from hours h, costs c
where h.job_id=c.job_id and c.typeof=3 and h.typeof=2
&nbsp;

как мне полученный&nbsp; deprcost использовать в другом запросе
т.е создать к нему ссылку заранее всем спасибо
SQl&nbsp; занимался около недели поэтому неумен

Я не очень знаю нюансы синтаксиса MS SQL, но первый простой вариант - просто сделай View. А далее строй запросы используя ее, как обычную таблицу.
Post #: 2
RE: Нужен совет По MS SQL - 2007-08-29 11:08:56.710000   
Translyator

Сообщений: 359
Оценки: 0
Присоединился: 2007-08-17 12:32:54.773333
quote:

ORIGINAL: alexbozhko

quote:

ORIGINAL: Translyator

select distinct c.job_id, h.job_id,
(h.amount/(select distinct sum(h.amount) from hours h&nbsp; where h.job_id=c.job_id and c.typeof=3 and h.typeof=2 group by h.job_id)*c.amount) as deprcost
from hours h, costs c
where h.job_id=c.job_id and c.typeof=3 and h.typeof=2


как мне полученный&nbsp; deprcost использовать в другом запросе
т.е создать к нему ссылку заранее всем спасибо
SQl&nbsp; занимался около недели поэтому неумен

Я не очень знаю нюансы синтаксиса MS SQL, но первый простой вариант - просто сделай View. А далее строй запросы используя ее, как обычную таблицу.

А это как если нетрудно то пример бы не помешал
Post #: 3
RE: Нужен совет По MS SQL - 2007-08-29 11:37:44.716666   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
quote:

ORIGINAL: Translyator

quote:

ORIGINAL: alexbozhko

quote:

ORIGINAL: Translyator

select distinct c.job_id, h.job_id,
(h.amount/(select distinct sum(h.amount) from hours h&nbsp; where h.job_id=c.job_id and c.typeof=3 and h.typeof=2 group by h.job_id)*c.amount) as deprcost
from hours h, costs c
where h.job_id=c.job_id and c.typeof=3 and h.typeof=2


как мне полученный&nbsp; deprcost использовать в другом запросе
т.е создать к нему ссылку заранее всем спасибо
SQl&nbsp; занимался около недели поэтому неумен

Я не очень знаю нюансы синтаксиса MS SQL, но первый простой вариант - просто сделай View. А далее строй запросы используя ее, как обычную таблицу.

А это как если нетрудно то пример бы не помешал

ну я не буду откатывать пример.
Не на чем сейчас
Но примерно так
create view
Вот упрощенный синтаксис
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition Ну а дальше select * from view_name
View создается один раз и живет в схеме
Post #: 4
RE: Нужен совет По MS SQL - 2007-08-29 11:40:26.160000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Вообще я всегда стараюсь разложить запросы на более простые.
Сложный запрос "с наворотами" актуален тогда когда есть проблема производительности.
Опять же, каждая СУБД по своему отрабатывает запрсы.
Поэтому иногда для разных СУБД более эффективными могут оказаться совершенно разные решения
Post #: 5
RE: Нужен совет По MS SQL - 2007-08-29 11:45:27.153333   
Translyator

Сообщений: 359
Оценки: 0
Присоединился: 2007-08-17 12:32:54.773333
попробую
Post #: 6
RE: Нужен совет По MS SQL - 2007-08-29 11:48:30.956666   
Translyator

Сообщений: 359
Оценки: 0
Присоединился: 2007-08-17 12:32:54.773333
я извиняюсь но у меня же не существующе столбец
этож формула
Post #: 7
RE: Нужен совет По MS SQL - 2007-08-29 12:34:53.233333   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
А ну и что?
Он во вьюхе как реальный станет
только вьху править нельзя.
Кстати, я не помню, может в MSSQL есть понятие "вычисляемое поле".
Post #: 8
RE: Нужен совет По MS SQL - 2007-08-29 12:58:05.340000   
Translyator

Сообщений: 359
Оценки: 0
Присоединился: 2007-08-17 12:32:54.773333
чё то не получается
The column 'job_id' was specified multiple times for 'Ov'. выдал это приэтом
 
 
create view Ov as
select distinct c.job_id, h.job_id,
(h.amount/(select distinct sum(h.amount) from hours h  where h.job_id=c.job_id and c.typeof=3 and h.typeof=2 group by h.job_id)*c.amount) as deprcost
from hours h, costs c
where h.job_id=c.job_id and c.typeof=3 and h.typeof=2
Post #: 9
RE: Нужен совет По MS SQL - 2007-08-29 13:14:07.180000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Попробуй select distinct c.job_id, h.job_id as rrr,….

Вообще надо отлаживать так трудно сказать
у тебя вложенный select
Попробуй поотдельности их прогнать.
Post #: 10
RE: Нужен совет По MS SQL - 2007-08-29 13:35:02.770000   
Pupkin-Zade

Сообщений: 9398
Оценки: 1489
Присоединился: 2004-03-10 13:54:16
distinct с вычисляемым полем это ИМХО 5…
Post #: 11
RE: Нужен совет По MS SQL - 2007-08-29 14:16:36.880000   
necrostaz

Сообщений: 172
Оценки: 0
Присоединился: 2007-02-27 15:54:59.460000
quote:

select distinct c.job_id, h.job_id, (h.amount/(select distinct sum(h.amount) from hours h  where h.job_id=c.job_id and c.typeof=3 and h.typeof=2 group by h.job_id)*c.amount) as deprcost from hours h, costs c where h.job_id=c.job_id and c.typeof=3 and h.typeof=2 как мне полученный deprcost использовать в другом запросе
т.е создать к нему ссылку заранее всем спасибо
SQl занимался около недели поэтому неумен


можно сделать проще не используюя вьюшку, например так:

select deprcost from (select distinct c.job_id, h.job_id, (h.amount/(select distinct sum(h.amount) from hours h  where h.job_id=c.job_id and c.typeof=3 and h.typeof=2 group by h.job_id)*c.amount) as deprcost from hours h, costs c where h.job_id=c.job_id and c.typeof=3 and h.typeof=2)src
Post #: 12
RE: Нужен совет По MS SQL - 2007-11-07 23:01:04.356666   
Toxic_gl

Сообщений: 17
Оценки: 0
Присоединился: 2007-11-07 22:52:34.470000
Вот нашел уязвимость а что делать не знаю выдает такую ошибку:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '\'' at line 1
Ошибка базы меню SELECT * from leftmenu1_c where id=1\' в index.php

Может кто скажет что делать?
Post #: 13
RE: Нужен совет По MS SQL - 2007-11-08 10:05:10.553333   
Pupkin-Zade

Сообщений: 9398
Оценки: 1489
Присоединился: 2004-03-10 13:54:16
Описывалось сто раз, читать
Post #: 14
Страниц:  [1]
Все форумы >> [Прочее] >> Нужен совет По MS SQL







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.