|
|
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
Есть таблица Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Нужно написать запрос, который возвращает след. данные: 1 столбец - все значения поля "DESTINATION" (города) 2 - COUNT(записей, у которых TARA IS NULL) 3 - SUM(по полю BAG_WEIGHT для записей, у которых TARA IS NULL) 4 - COUNT(записей, у которых TARA NOT NULL) 5 - SUM(по полю BAG_WEIGHT для записей, у которых TARA NOT NULL) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 11:10 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
Это делается через ХП или двумя разными запросами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 11:45 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
А какой сервер используется ? Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 12:21 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
Я тут поменял немного Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Нужно написать запрос, который возвращает след. данные: 1 столбец - все значения поля "DESTINATION" (города) 2 - COUNT(записей, у которых TARA=1) 3 - SUM(по полю BAG_WEIGHT для записей, у которых TARA=1) 4 - COUNT(записей, у которых TARA=4) 5 - SUM(по полю BAG_WEIGHT для записей, у которых TARA=4) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 17:14 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
Т.е. нужен список городов и по каждому городу 2 - COUNT(записей, у которых TARA=1) 3 - SUM(по полю BAG_WEIGHT для записей, у которых TARA=1) 4 - COUNT(записей, у которых TARA=4) 5 - SUM(по полю BAG_WEIGHT для записей, у которых TARA=4) Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 17:17 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
1) В принципе, да. 2) Просто "DESTINATION" - FK на ID таблицы Код: plaintext 1. 2. 3. 4. А здесь "DELIVERY_TYPE" - FK на ID таблицы Код: plaintext 1. 2. 3. И собственно 1 столбец получаемого запроса - все значения поля "TYPE_NAME", но думаю если решить зад.1, решение зад.2 из нее получить не трудно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 17:39 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
Если не писать ХП - то можно так: select R.DESTINATION, count(R.DESTINATION), SUM(R.BAG_WEIGHT), (select count(R.DESTINATION) from RUSSIA where RUSSIA.TARA=4 and R.destination=russia.destination), (select sum(R.BAG_WEIGHT) from RUSSIA where RUSSIA.TARA=4 and R.destination=russia.destination) from RUSSIA R where R.TARA=1 group by R.DESTINATION, R.BAG_WEIGHT !!! НО ЭТО, честно говоря - ИЗВРАЩЕНИЕ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 18:13 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
:Если не писать ХП - то можно так: мне кажется, что если есть такие города, для которых строк с тара=1 не существует, но существуют строки с тара=4, такой запрос, как Вы предложили, не будет корректным. А в случае, если если значения тара in (1, 4 .... n) - это вообще не выход. Необходимо делать так: SELECT RUSSIA.DESTINATION , RUSSIA.TARA , COUNT(*) , SUM(RUSSIA.BAG_WEIGHT) FROM RUSSIA WHERE RUSSIA.TARA in (1,4) GROUP BY RUSSIA.DESTINATION , RUSSIA.TARA или так: SELECT DT.TYPE_NAME , RUSSIA.TARA , COUNT(*) , SUM(RUSSIA.BAG_WEIGHT) FROM RUSSIA RUSSIA , TOWNS T , DELIVERY_TYPES DT WHERE RUSSIA.TARA in (1,4) AND RUSSIA.DESTINATION = T.ID AND T.DELIVERY_TYPE = DT.ID GROUP BY DT.TYPE_NAME , RUSSIA.TARA Вообще-то подобное именование ссылочных значений не является хорошим тоном, если хотите - дам совет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 18:32 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
из опыта нашей команды: в таблице первым идет искуственный ключ(ИК), название ИК совпадает с именем таблицы, также обычно создается генератор с именем 'GEN_'+ИК поля, представляющие собой ссылочные значения, также называются, как ИК Например: CREATE TABLE RUSSIA ( RUSSIA INTEGER NOT NULL , ... , DESTINATION INTEGER) CREATE TABLE DESTINATION ( DESTINATION INTEGER NOT NULL , ... , DELIVERY_TYPE INTEGER) CREATE TABLE DELIVERY_TYPE ( DELIVERY_TYPE INTEGER NOT NULL , ...) Если в команде придерживаются определенной дисциплины именования объектов БД, это экономит массу нервной энергии, более того некоторые CASE также способны строить связи между таблицами, исходя только из именования полей. Есть ещё приемы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 19:08 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
????? Странно Есть таблица автор писал: ID | FROM_TO | BAG_DATE | BAG_NUMB | DESTINATION | BAG_WEIGHT | TARA 1 | 1 19.11.2003 | 1 | 1 | 1,000 | 1 2 | 1 19.11.2003 | 1 | 1 | 1,000 | 2 3 | 1 19.11.2003 | 1 | 1 | 1,000 | 1 4 | 1 19.11.2003 | 1 | 2 | 1,000 | 1 5 | 1 19.11.2003 | 1 | 2 | 1,000 | 2 6 | 1 19.11.2003 | 1 | 1 | 2,000 | 4 7 | 1 19.11.2003 | 1 | 1 | 1,000 | 4 выполнил свой некоректный запрос..Получил - автор писал: DESTINATION | COUNT | SUM | F_1 | F_2 | 1 | 2 | 2,000| 2 |2,000 2 | 1 | 1,000| 0 |NULL Кто как прокоментирует?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 19:08 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что первая строка должна была получитьядругой 1 | 2 | 2,000| 2 |2,000 ---------> 1 | 2 | 2,000| 2 |3,000 Или я не прав? И какие вы хотели услышать комментарии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 19:16 |
|
||
|
Подскажите запрос
|
|||
|---|---|---|---|
|
#18+
??? может уже время познее :)) заработался ?!..... почему же 3 а не 2?!: последнее поле: SUM(по полю BAG_WEIGHT для записей, у которых TARA=4) ... а в приведенной мною вариатне TARA=4 - всего навсего у 2-ух последних записей и у DESTINATION ="1" ???? блин...:((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 19:31 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32328313&tid=1579625]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
220ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 546ms |

| 0 / 0 |
