|
|
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
Много Уважаеммый ALL , не подскажешь ли как составить запрос следующего содержания Есть таблица ID1 , ID2 Int; Pole Float Нужен запрос вида (типа): SELECT ID1 , Умножение ( Pole ) GROUP BY ID1 Или это невозможно принципиально??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 17:50:35 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
что означает Умножение(Pole) ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 17:56:12 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
ID1|ID2|Pole ------------ 1 | 1 | 2.5 1 | 2 | 1.2 2 | 1 | 3.5 3 | 1 | 1.7 3 | 2 | 1.8 3 | 3 | 1.3 ------------- Результат: ------------ ID | Результат ------------ 1 | 3.75 2 | 3.5 3 | 3.978 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 18:11:13 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
Balu, если в примере набора данных во второй строке столбца Pole вы ошиблись и поставили 1.2 вместо 1.5, то можно подумать... А если это не так, то не понятно, что нужно получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 18:23:13 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
To MichaelGK Да согласен ошибочка вышла должно быть: ID1|ID2|Pole ------------ 1 | 1 | 2.5 1 | 2 | 1.5 2 | 1 | 3.5 3 | 1 | 1.7 3 | 2 | 1.8 3 | 3 | 1.3 ------------- Результат: ------------ ID | Результат ------------ 1 | 3.75 2 | 3.5 3 | 3.978 --------------------------------- Смысл получить следующее: ID = 1, Результат = 2,5*1,5 = 3,75 ID = 2, Результат = 3,5 ID = 3, Результат = 1,7*1,8*1,3 = 3,978 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 18:27:24 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
Это не умножение, это сумма ваш запрос, тольк вместо слова умножение подставить Sum(Pole) as Результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 18:34:14 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
пардон, ошибся... невнимательно прочел.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 18:35:56 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
ИМХО так (верно для MS SQL2000 ): Код: 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 18:52:46 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
Спасибо Jimmy Но так и я сделал, тормоза жуткие записей порядка 15 миллионов :( Хотелось бы ускорить вычисление. Как я понимаю на стандартном T-SQL это невозможно ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 18:57:23 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
я не проверял, но может подойдет такой вариант или некий подобный Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 19:13:42 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
Если в примере Jimmy изменить код функции: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 19:32:17 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
To AAron Ценю участие, но среднее арифметическое ??? помоему это слишком. Ради интереса, результат по тестовому примеру: id | mult ----------- 1 | 4.00 2 | 3.50 3 | 4.80 Причем с точки зрения математики (среднеарифметического) ВСЁ верно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 19:32:40 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
Глупо уточнять, но тем не менее - индекс соответствующий имеется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 19:34:35 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
2 Balu я же написал, что не проверял :) все... понял... тяжелый день был :)) пр умножении получится просто сумма :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 19:37:22 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
To jimmers Спасибо, интересная идея . Индекс построить не могу, в виду того, что это View собраный из 5-ти таблиц, как результат - запрос выполняется в 6-ть раз медленее чем с функцией работающей через кусрсор, я сам не понимаю причины :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 19:54:51 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
Ну так и надо писать VIEW, а не "Есть таблица"... Кроме того, нельзя ли узнать - как именно формируется Представление? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 20:05:34 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
Грубо говоря так: SELECT Field1, ..., 1 ,.... FROM Table1 WHERE .... UNION SELECT Field1, .., 0.1,.. FROM Table2 WHERE .... UNION SELECT Field1, .., Живое поле из базы ,.. FROM Table3 WHERE .... Потом это View участвует в другом View типа SELECT ..... FROM .... LEFT JOIN ..... И только ко второму View я присоединяюсь. Причина таких построений - я на сервер перенес математику, уж больно долго на клиенте она обрабатывается :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2002, 20:12:52 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
Из школьного курса -- Сумма логарифмов = Логарифму от произведения поэтому create table dbo.testmult (id int, value numeric(8,2)) go insert testmult (id, value) values( 1, 2.5 ) insert testmult (id, value) values(1 , 1.5 ) insert testmult (id, value) values(2 , 3.5 ) insert testmult (id, value) values(3 , 1.7 ) insert testmult (id, value) values(3 , 1.8 ) insert testmult (id, value) values(3 , 1.3 ) go select id,Cast(exp(sum(log(value))) as decimal(8,3)) from testmult group by id id ----------- ---------- 1 3.750 2 3.500 3 3.978 (3 row(s) affected) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2002, 05:33:14 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
svz58 - 5 баллов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2002, 10:10:45 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
2svz58 Круто. Школьный курс мы уже забыли... А я только так предложу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2002, 12:00:21 |
|
||
|
Умножение в запросе
|
|||
|---|---|---|---|
|
#18+
2 jimmers Ваша функция - элегантнее. 2 svz58 Просто супер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2002, 12:20:20 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32046630&tid=1820752]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 368ms |

| 0 / 0 |
