|
|
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Ситуация следующая: есть две таблицы 1. Skl_tk - поля: Cod - уникальное поле, Art, Diz, Col 2. Skl_rul - поля: Cod, Rulon, Kolvo Мне надо выполнить след запрос: select skl_tk.*, sum (skl_rul.kolvo) as NAL from skl_tk, skl_rul where skl_tk.cod=skl_rul.kod group by skl_rul.cod order skl_tk.ART, skl_tk.DIZ, skl_tk.COL Запрос естественно не работает:((( Что в нём не правильно????? И можно ли добавить в таблицу Skl_tk вычисляемое поле NAL равное сумме Kolvo в таблице Skl_rul по полю COD????? И если можно , то как???? Заранее прошу прощенья за может быть корявое объяснение проблемы.....:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2003, 14:07 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Вычисляемое поле... а ты себе представил как будет выглядеть таблица? Я честно говоря слабо... Теперь по поводу запроса. Когда он не работает, буть добр, пиши ошибку, дабы не сидеть и не искать ее. А не работает он... по одной причине. Давай маленько опишу то что пишется в нормальных книгах по SQL и примерно упоминается в неочень нормальных. Начального уроня разумеется. Секция Group by как бы делит результирующий набор данных на части. Причем делятся они по принципу одинаковых наборов значений полей перечисленных в секции Group by . (В случае с одним полем собираются в группы по одинаковым значениям поля). Далее агрегатные функции, коей является и sum , производят необходимые вычесления. Теперь собственно к вопросу. Откуда система может знать что значения набора полей skl_tk.* будут уникальны в пределах той части, которую выделяет Group by . Отсюда напрашивается вывод. Резюме. В секции select могут использоваться только те поля, которые обявлены в секции Group by , либо поля на которые наложены агрегатные функции Вот и все P.S. Почитай книги, и многое станет ясным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 03:23 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Ок. Чуть-чуть изменим вопрос. Можно ли в НД IBDataSet добавить вычисляемое поле NAL равное сумме Kolvo в таблице Skl_rul по полю COD? По поводу Group By - я в курсе как он используется!!! Я заранее попросил прощенья за корявость вопроса, и видимо не напрасно.... Я написал select для того, чтобы объяснить что мне надо получить, а не для того чтобы мне написали какие книги мне читать....Кто может помочь - помогите правильным селектом, а не списком книг для чтения!!!! Книг у меня и так хватает... Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 09:23 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Молодой человек, вы видимо огромного самомнения, а толку ноль... головой работать надо select [список полей skl_tk] , sum (skl_rul.kolvo) as NAL from skl_tk, skl_rul where skl_tk.cod=skl_rul.kod group by [список полей skl_tk] , skl_rul.cod order skl_tk.ART, skl_tk.DIZ, skl_tk.COL Боюсь до того чтоб понять как работает group by ва необходимо уметь слушать и читать. Это вывод на основе моих же слов... кстате, есть и более быстрый вариант, но тут уже думать надо, а вы этого не любите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 09:48 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Млин вы здесь все что ли такие умные????? Если тебе задают вопрос, то какого отвечать типо "читайте книги"????? А на кой тогда форум???? Закройте его и напишите типо того - " Про всё написанно в книгах, а нам влом отвечать вам ламерам"..... И по поводу твоего селекта group by [список полей skl_tk], skl_rul.cod - и что он просуммирует???????????? Млин, и просьба спецом для StarWind - я уж как нибудь без твоих советов обойдусь!!!! Мне не 15 лет, чтобы выслушивать твой трёп, мальчик!!!!!! А по поводу самомнения - не я, а Вы, любезнейший, превозносите себя выше уровня своего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 09:57 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
хорошо, базара нет :) жизнь научит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 09:59 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
StarWind - млин, коль я задал вопрос, то наверное не стыжусь признать того, что не знаю!!!! Если можешь помочь - то помоги реально (можно и материально)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 10:03 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Тебе и помогли. Использование агрегатных функций хорошо описано в любом руководстве по SQL, там же можно прочитать, и что просуммируется, и как употреблять group by ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 10:40 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
select sum(skl_rul.kolvo) as NAL, skl_tk.cod from skl_tk, skl_rul where skl_tk.cod=skl_rul.cod group by skl_tk.cod Это рабочий select!!! Суммирует так как надо и то что надо, но мне надо показать остальные поля таблицы skl_tk. Как это сделать??????????????????????????????????????????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 10:55 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
После ткой дрки и нпсать что-то страшно... Все-таки, я бы порекомендовал написать точно запрос, например, скопировав его через буфер, потому-что в нем описано слишком много потенциальных ошибок. Даже синтаксическая: в таблице skl_rul описано поле Cod, а в запросе Kod. Вероятно, это опечатка... Ваш запрос должен работать, с учетом указанного колегами замечания - группировка должна быть по всем полям указанным в запросе, кроме агрегатных. В запросе SKL_TK , в группировке -- SKL_RUL ; в запросе * в группировке -- COD . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 11:04 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, написал одновременно... Перенесите их до агрегатных полей. Правда, не уверен, что они покажут то что надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 11:07 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Да в том то и дело, что группировку надо делать только по этому полю - skl_rul.cod. select sum(skl_rul.kolvo) as NAL, skl_tk.cod from skl_tk, skl_rul where skl_tk.cod=skl_rul.cod group by skl_tk.cod Т.е. есть склад ткани - skl_tk, и есть склад рулонов ткани - skl_rul, причём в складе ткани присутствуют только идентификаторы ткани, а в складе рулонов таже ткань только по номерам рулонов и кол-ву метров в рулоне. То бишь на одну ткань может быть несколько рулонов. И мне надо в селекте объеденить инфу из двух складов. Art, Diz, Col - как мне их показать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 11:16 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Группировка обязана быть по всем полям, кроме агрегатных функций. Как, по-твоему, должен выглядеть результат запроса? Приведи пример. НА мой взгляд, это даст то, что нужно: select skl_tk.COD, skl_tk.ART, skl_tk.DIZ, skl_tk.COL, sum(skl_rul.kolvo) as NAL from skl_tk, skl_rul where skl_tk.cod=skl_rul.kod group by skl_tk.COD, skl_tk.ART, skl_tk.DIZ, skl_tk.COL order skl_tk.ART, skl_tk.DIZ, skl_tk.COL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 11:22 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Roman Ignatiev я думаю, ему просто нужно успокоится и просто прочитать, сколько можно писать одно и тоже? Ведь он даже не проверяет это. Зачем тогда писать? От него вопросы сыпятся как из рога изобилия, при том что все они, это начальный уровень, который везде описан. Так что... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 11:28 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
StarWind - спасибо, прочитал и попробовал, работает... А про начальный уровень - я не спорю. И не пытаюсь кому-либо доказать, что я асс. Просто совет на будущее тебе - будь проще, чем выше подымаешься, тем громче падаешь...И поменьше высокомерия..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 11:52 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
у человека даже не развито чувство благодарности :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 11:56 |
|
||
|
Вычисляемое поле
|
|||
|---|---|---|---|
|
#18+
Тебе как - деньгами или руку поцеловать???????? "StarWind - спасибо, прочитал и попробовал, работает" - и кто из нас читать не умеет?????????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2003, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32144899&tid=1580609]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 355ms |

| 0 / 0 |
