Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подскажите где я допустил ошибку / 25 сообщений из 26, страница 1 из 2
24.12.2015, 17:29
    #39137425
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
У меня 3 - и таблицы. делаю выборку
1) GET

2) op_uslug

3) p_uslug

Выполняю запрос SELECT

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT SUM(d.op_summa)AS opl, SUM(c.pu_sunna)as usl, a.get_karta,
   a.get_dzap,a.get_ztim1,a.get_dock,a.get_klient

FROM GET1 a

Left Join op_uslug d ON  a.get_karta = d.op_karta and a.get_dog = d.op_dogovor
left Join p_uslug c ON a.get_karta = c.pu_karta and a.get_dog = c.pu_dogovor


group by d.op_summa, c.pu_sunna,a.get_karta, a.get_dog,
         a.get_dzap,a.get_ztim1,a.get_dock,a.get_klient
order by a.get_karta



Не правильно сортирует не суммирует значения SUM(d.op_summa)AS opl, SUM(c.pu_sunna)as USL

Что можно с этим сделать.
a.get_karta = d.op_karta and a.get_dog = d.op_dogovor эти все поля VARCHAR
...
Рейтинг: 0 / 0
24.12.2015, 17:37
    #39137438
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77
Код: sql
1.
group by d.op_summa, c.pu_sunna



Не правильно сортирует не суммирует значения SUM(d.op_summa)AS opl, SUM(c.pu_sunna)
Ну, что написал, то и получил. ССЗБ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.12.2015, 17:56
    #39137459
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
Dimitry Sibiryakov,

Я убрал не нужные поля в Groyp by

Но все равно сумму значений считает не правильно .. слишком большое значение получается
...
Рейтинг: 0 / 0
24.12.2015, 17:59
    #39137462
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
Hello, Kadekin77!
You wrote on 24 декабря 2015 г. 17:58:41:

Kadekin77> Я убрал не нужные поля в Groyp by
> Но все равно сумму значений считает не правильно .. слишком большое значение получается
чтоб понять что ты тянешь и что суммируешь, убери агрегаты и замени группировку на ORDER BY.
и смотри какие данные попадают внутрь агрегата.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.12.2015, 18:10
    #39137475
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77, поверь, сервер всё делает правильно - так как ты ему указал!
Выбирает данные из таблиц, группирует строки идентичные по значениям полей указанных в GROUP BY (d.op_summa, c.pu_sunna,a.get_karta, a.get_dog, a.get_dzap,a.get_ztim1,a.get_dock,a.get_klient) и суммирует отдельно по каждой группе. Следовательно, SUM(d.op_summa) в каждой отдельной группе будет идентична значению поля d.op_summa любой записи в группе помноженному на количество записей в группе.
...
Рейтинг: 0 / 0
24.12.2015, 18:41
    #39137504
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
DBConstructor,

Это я понимаю.. сейчас пытаюсь сделать SELECT без SUM.
Как я вижу в простом выборе у меня идет дублирование :(
...
Рейтинг: 0 / 0
24.12.2015, 19:33
    #39137566
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77,
Пошел от простого
Код: sql
1.
2.
3.
4.
5.
6.
7.
[SRC sql]SELECT
   a.get_id, d.dog_karta, a.get_dzap,a.get_ztim1,a.get_dock,a.get_klient

FROM
     GET1 a

Left Join DOGPAC d on d.dog_karta=a.get_karta

[/SRC]

количество записей увеличивается идет повтор. как это решить ??
...
Рейтинг: 0 / 0
24.12.2015, 19:40
    #39137573
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77Left Join DOGPAC d on d.dog_karta=a.get_karta
то есть, для a.get_karta может отсутствовать d.dog_karta?
kadekin77количество записей увеличивается
в смысле?
...
Рейтинг: 0 / 0
24.12.2015, 19:49
    #39137581
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kdv,
1 - таблица GET1 основная.
2 - Таблица op_uslug - таблица по оплате (одному клиенту и карте и договору может соответствовать несколько записей оплаты)
3 -Таблица p_uslug - таблица услуг. (одному клиенту и карте и договору может соответствовать несколько записей Установленных сумм)
4 - Таблица DOGPAC - таблица договоров.
Во всех таблицах есть поля KARTA, DOG, KLIENT
Но не для всех клиентов 1 таблицы могут быть данные (2-4 таблицы)
Мне нужно вывести одну большую таблицу
...
Рейтинг: 0 / 0
24.12.2015, 19:54
    #39137583
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77, explain метаданных перечисленных таблиц в студию.
...
Рейтинг: 0 / 0
24.12.2015, 20:13
    #39137593
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
DBConstructor,
Fierbird + explain не признает ..щас. Ищу в инете
...
Рейтинг: 0 / 0
24.12.2015, 20:55
    #39137622
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77, omg... Просто выдерни IBExpert 'ом DDL запросы создания твоих таблиц и сюда под спойлер.
...
Рейтинг: 0 / 0
24.12.2015, 22:09
    #39137673
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
DBConstructor,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE GENERATOR GEN_GET_ID;

CREATE TABLE GET1 (
    GET_ID      INTEGER NOT NULL,
    GET_KLIN    VARCHAR(150),
    GET_DZAP    DATE,
    GET_ZTIM1   VARCHAR(100),
    GET_ZTIM2   TIME,
    GET_DOCK    VARCHAR(200),
    GET_SPEC    VARCHAR(100),
    GET_KLIENT  VARCHAR(200),
    GET_KARTA   VARCHAR(80),
    GET_PR      VARCHAR(10),
    GET_ROGD    VARCHAR(100),
    GET_USLUG   VARCHAR(100),
    GET_AKT     INTEGER,
    GET_DOG     VARCHAR(155),
    GET_SUMM    NUMERIC(5,2),
    GET_NPR     VARCHAR(10),
    GET_REMARK  VARCHAR(255)
);


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE GENERATOR GEN_DOGPAC_ID;

CREATE TABLE DOGPAC (
    DOG_ID       INTEGER NOT NULL,
    DOG_KARTA    VARCHAR(100),
    DOG_FIO      VARCHAR(155),
    DOG_NOMER    VARCHAR(155),
    DOG_SUM      NUMERIC(5,2),
    DOG_SPECIAL  VARCHAR(100),
    DOG_DOC      VARCHAR(100),
    DOG_AVANS    NUMERIC(5,2),
    DOG_DATA     DATE
);


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE OP_USLUG (
    OP_ID       INTEGER NOT NULL,
    OP_FIO      VARCHAR(155),
    OP_USLUGA   VARCHAR(155),
    OP_VID      VARCHAR(255),
    OP_DATA     DATE,
    OP_SUMMA    NUMERIC(5,2),
    OP_KARTA    VARCHAR(155),
    OP_DOGOVOR  VARCHAR(255)
);


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE GENERATOR GEN_PU_ID;

CREATE TABLE P_USLUG (
    PU_ID       INTEGER NOT NULL,
    PU_FIO      VARCHAR(255),
    PU_USLUGA   VARCHAR(155),
    PU_SUNNA    NUMERIC(5,2),
    PU_ACTIV    INTEGER,
    PU_KARTA    VARCHAR(155),
    PU_DOGOVOR  VARCHAR(255),
    PU_KOL      INTEGER
);
...
Рейтинг: 0 / 0
24.12.2015, 23:30
    #39137709
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77, не обижайтесь, но по моему скромному мнению, это "мама, роди меня обратно!". Где тут первичные ключи, где внешние, где связи сущностей? В качестве чего вы используете уникальные идентификаторы строк (те, которые ID)? Посмотреть бы в глаза человеку, который преподавал вам теорию реляционных баз данных...
Для начала, я бы порекомендовал как следует изучить "матчасть":
Введение в системы баз данных. Восьмое издание
Классика баз данных
The SQL-92 standard (англ.)
Firebird: руководство разработчика баз данных 2 изд.
Firebird 2.5 Language Reference (Russian)

Для начала, думаю, пока достаточно.
...
Рейтинг: 0 / 0
25.12.2015, 00:41
    #39137727
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77,

а где таблица KLIENT???
...
Рейтинг: 0 / 0
25.12.2015, 05:35
    #39137755
Граур Станислав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77a.get_karta = d.op_karta and a.get_dog = d.op_dogovor эти все поля VARCHAR


Код: sql
1.
2.
3.
4.
5.
GET_KARTA   VARCHAR(80)
OP_KARTA    VARCHAR(155)

GET_DOG     VARCHAR(155)
OP_DOGOVOR  VARCHAR(255)



Ничего, что у полей разный размер?
Это специально так задумано?

P.S.
Лабораторная?
...
Рейтинг: 0 / 0
25.12.2015, 07:17
    #39137764
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
Граур Станислав,
Нет это не лабораторная.
То что разных размеров не чего.
...
Рейтинг: 0 / 0
25.12.2015, 09:30
    #39137804
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
Граур СтаниславЛабораторная?
Не приведи Господь... Курсовик.
...
Рейтинг: 0 / 0
25.12.2015, 13:36
    #39138117
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
DBConstructor,

:(
...
Рейтинг: 0 / 0
25.12.2015, 14:06
    #39138173
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77, батенька, у вас еще есть время восполнить пробелы в знаниях rdbms и сделать всё как надо.
...
Рейтинг: 0 / 0
25.12.2015, 15:30
    #39138259
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
DBConstructor,
Я же не кричал.. напишите :) сделайте за меня :))
Спасибо за подсказки..
...
Рейтинг: 0 / 0
25.12.2015, 15:30
    #39138262
kadekin77
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77,

БД слабое место у меня :(
...
Рейтинг: 0 / 0
25.12.2015, 15:56
    #39138285
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
раздел работа рядом, $200 и нет проблем.
...
Рейтинг: 0 / 0
25.12.2015, 18:05
    #39138391
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
kadekin77БД слабое место у меня :(
Если не секрет, чем вы собираетесь зарабатывать на хлеб насущный, после окончания учебного заведения с такими знаниями реляционных баз данных? Неужто написанием системных утилит и драйверов уровня ядра?
Мой вам совет - изучите, хотя бы, основы.
...
Рейтинг: 0 / 0
25.12.2015, 18:07
    #39138394
DBConstructor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите где я допустил ошибку
Сцылачна целкастность - цэ наше усё!
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подскажите где я допустил ошибку / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]