Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с решением запроса в MS SQL 2000...
|
|||
|---|---|---|---|
|
#18+
код: set dateformat dmy select FirmName=(select top 1 Name from Firms where FirmID=Destinator), Suma1=(select sum(boxs*units_in_box*cost_unit) from SalesProduction where Factura_ID in (select FacturaID from Factures where Destinator=F.Destinator and Registred=1 and Supplier in (1,2) and Data between '10.10.2001' and '10.11.2001' ) and Production_ID=60000001 ) from Factures F where Registred=1 and Supplier in (1,2) and Data between '10.10.2001' and '10.11.2001' group by Destinator Вот этот запрос выдает таблицу состоящию из названия фирмы и суммы ее оборота по определенной продукции. Трабл в том, что выводятся и фирмы, где этого оборота нет. т.е. мне было-бы удобно, если в Where я мог вставить AND Suma1 is not null но этого я не могу, т.к. поле в этом случае вычисляемое. Полностью запрос на условие в Where -мне ставить не хочется... поэтому прошу вашей помощи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2001, 12:34 |
|
||
|
Помогите с решением запроса в MS SQL 2000...
|
|||
|---|---|---|---|
|
#18+
Проблема в том что ты сначала находиш фирму а потом смотришь обороты по ней. Дабы сильно ничего не переписывать Вариант1 Залей всю выборку во временную табл. а потом делай select с условием из нее. Select select FirmName=(select top 1 Name from Firms where FirmID=Destinator), *** into #TMP Select * from #TMP where Summa1 Not Null или Вариант2 Аналогичен первуму варианту, реализовав его не через временну табл. а добавив лишний уровень вложенности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2001, 17:42 |
|
||
|
Помогите с решением запроса в MS SQL 2000...
|
|||
|---|---|---|---|
|
#18+
Попробуйте так: select FirmName = Firms.Name, Suma1= sum(boxs*units_in_box*cost_unit) from SalesProduction s INNER JOIN Factures f ON f.FacturaID = s.Factura_ID INNER JOIN Firms ON Firms.FirmID = f.Destinator where s.Production_ID=60000001 and f.Registred=1 and f.Supplier in (1,2) and f.Data between '10.10.2001' and '10.11.2001' group by f.Destinator, Firms.Name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2001, 07:29 |
|
||
|
Помогите с решением запроса в MS SQL 2000...
|
|||
|---|---|---|---|
|
#18+
Если обойтись минимальными изменениями в коде скрипта, то следует после Group By Destinator вставить HAVING (select sum(boxs*units_in_box*cost_unit) from #SalesProduction where Factura_ID in (select FacturaID from #Factures where Destinator=F.Destinator and Registred=1 and Supplier in (1,2) and Data between '10.10.2001' and '10.11.2001' ) and Production_ID=60000001 ) Is Not NULL Но я бы предложил другой вариант, SubTree Cost которого в два раза ниже: Select ff.Name, SUM(s.boxs*s.units_in_box*s.cost_unit) From #Factures f inner join #SalesProduction s on s.Factura_ID=f.FacturaID and s.Production_ID=60000001 inner join #Firms ff on ff.Firmid=f.Destinator Where f.registred=1 AND Supplier in (1,2) AND f.Data between '10.10.2001' and '10.11.2001' Group By ff.Name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2001, 07:43 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3532&tid=1825003]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
16ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
21ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 268ms |

| 0 / 0 |
