Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |
Приведите пожалуйста исходник на SQL, создающий Ваши... 13.01.05 17:22 Число просмотров: 1731
Автор: 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;
=========================================
|
<programming>
|
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
|
|
|
|