информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медЗа кого нас держат?Страшный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
sql : select count (*) 13.01.05 11:00  
Автор: paganoid Статус: Member
Отредактировано 13.01.05 12:32  Количество правок: 1
<"чистая" ссылка>
Есть две таблицы, "накладные" (docs) и "строки накладной" (lines). К одной накладной
привязано несколько строк накладной. В строке есть поле "код товара" (goodscode).
В накладной есть поле "код" (code). Ура.

Итак, задача, сделать SQL запросом выборку ВСЕХ накладных, возвращающую
данные по накладным "код" и "количество товаров с определенным кодом".

Что делаю (синтаксис mysql, запросы пишу на память, не обессудьте)

SELECT code,count(lines.goodscode)
FROM docs LEFT JOIN lines ON docs.id = lines.doc_id
WHERE line.goodcode = "needed"
GROUP BY docs.id;

- возвращает только те накладные, где в строках есть указанный товар,
в количествах - правильные значения. Накладные, где строк нет -
в выборке отсутсвуют.

SELECT code,count(lines.goodscode)
FROM docs LEFT JOIN lines ON docs.id = line.doc_id
WHERE line.goodcode = "needed" or line.goodcode IS NULL
GROUP BY docs.id;

- возвращает те строки, где есть указанный товар,
и те строки где нет ни одной строки (в них в кол-ве 0).

Накладные, у которых есть строки с товарами, отличными от искомого,
в результирующий набор не попадают.

что делать? TFM читал.

Приведите пожалуйста исходник на SQL, создающий Ваши... 13.01.05 17:22  
Автор: Walk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Приведите пожалуйста исходник на SQL, создающий Ваши таблицы, и заполняющий его примерными данными. Согласно представленным данным могу предложить следующее:
=========================================
SELECT code,count(lines.goodscode)
FROM docs LEFT JOIN lines ON docs.id = lines.doc_id
WHERE line.goodcode = "needed"
GROUP BY lines.doc_id;
=========================================
Если я правильно понял, попробуй так 13.01.05 16:56  
Автор: Gorynich Статус: Незарегистрированный пользователь
Отредактировано 14.01.05 00:55  Количество правок: 1
<"чистая" ссылка>
Если я правильно понял, попробуй так
SELECT code,
    select count(lines.goodscode) 
    from lines 
    where lines.doc_id = docs.id 
           and
             line.goodcode = "needed" 
FROM docs

---
Select code,count(lines.goodscode) 13.01.05 12:37  
Автор: eug Статус: Незарегистрированный пользователь
<"чистая" ссылка>
SELECT code,count(lines.goodscode)
FROM docs LEFT JOIN lines ON (docs.id = lines.doc_id and line.goodcode = "needed")
GROUP BY docs.id;
огромное человеческое спасибо, работает 13.01.05 12:42  
Автор: paganoid Статус: Member
Отредактировано 14.01.05 09:59  Количество правок: 1
<"чистая" ссылка>
А что, все обязательно в одном запросе находить? Просто с... 13.01.05 12:06  
Автор: maska Статус: Незарегистрированный пользователь
<"чистая" ссылка>
А что, все обязательно в одном запросе находить? Просто с одной стороны ВСЕ накладные, а с другой - код определенного товара.
нужен не код товара, а количество товаров с требуемым кодом 13.01.05 12:28  
Автор: paganoid Статус: Member
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach