CREATE TABLE #table_1
(
KodZakaz varchar(255),
Vrtv varchar(255),
AVT varchar (255),
rcp1 varchar (255),
)
INSERT INTO #table_1 (KodZakaz, Vrtv, AVT, rcp1)
Select Zakaz.kodZakaz , (Izdelaya .KodVorot) as Vrt
, (Zakazano.kodzakazano) as AVT, (Izdelaya .rcp) as RCP1
from Zakaz
inner join Izdelaya on Izdelaya.KodZakaz=Zakaz.KodZakaz
left join Zakazano on Zakazano.KodZakaz=Zakaz.KodZakaz and Zakazano.TipZakazano='AVT'
WHERE DataCehZakaz>='20110101' and DataCehZakaz<'20120201'
UPDATE #table_1 SET AVT=1 WHERE AVT!=0
SELECT COUNT (KodZakaz) as kod, (AVT) as avtomatika, rcp1 FROM #table_1 group by AVT, rcp1
DROP TABLE #table_1
в MsSQL запрос работает а тут не выходит...
Спустя 23 минуты, 9 секунд (11.03.2012 - 13:01) Placido написал(а):
Какие ошибки, сам запрос?
Спустя 11 минут, 25 секунд (11.03.2012 - 13:12) maksimon написал(а):
ругается на php код не в строках запроса, но если прописываю простой запрос типа Select * FROM table ... все работает!!!
Спустя 7 минут, 53 секунды (11.03.2012 - 13:20) Visman написал(а):
В первом посте нет php кода, как там может на него ругаться? Где сам код?
Спустя 31 минута, 28 секунд (11.03.2012 - 13:51) maksimon написал(а):
вот
<?php
$url = $_SERVER['REQUEST_URI'];
//вместо авторизации
include_once('func.php');
function get_sek_vor()
{
global $conn;
$sql = "CREATE TABLE #table_1
( KodZakaz varchar(255),
Vrtv varchar(255),
AVT varchar (255),
rcp1 varchar (255), )
INSERT INTO #table_1 (KodZakaz, Vrtv, AVT, rcp1)
Select Zakaz.kodZakaz , (Izdelaya .KodVorot) as Vrt , (Zakazano.kodzakazano) as AVT, (Izdelaya .rcp) as RCP1 from Zakaz
inner join Izdelaya on Izdelaya.KodZakaz=Zakaz.KodZakaz
left join Zakazano on Zakazano.KodZakaz=Zakaz.KodZakaz
and Zakazano.TipZakazano='AVT'
WHERE DataCehZakaz>='20110101' and DataCehZakaz<'20120201'
UPDATE #table_1 SET AVT=1
WHERE AVT!=0SELECT COUNT (KodZakaz) as kod, (AVT) as avtomatika, rcp1 FROM #table_1
group by AVT, rcp1 DROP TABLE #table_1
";
$rs = odbc_exec($conn, $sql);
while ( $line = odbc_fetch_array( $rs ) )
$result[odbc_result($rs, 'KodZakaz')] = $line;
return $result;
}
if ( !isset( $_SESSION['manId'] ) ) { header('Location: /login.php'); }
$manId = $_SESSION['manId'];
$otdelId = $_SESSION['otdelId'];
$sek_vor = get_sek_vor();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> ТОП </title>
<meta name="description" content="">
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<link type="text/css" href="css/smoothness/jquery-ui-1.8.2.custom.css" rel="stylesheet" />
<link href="css/style.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.2.custom.min.js"></script>
<script src="js/jquery.ui.datepicker-ru.js"></script>
<script type="text/javascript">
$(function(){
$(window).load(function(){
//выключаем индикатор, когда загрузилась вся страница
$('#indicator').dialog('close');
});
$('#indicator').dialog({
title: 'Идет загрузка',
autoOpen: false, modal: true, width: 200, height: 70
});
$('#indicator')
.ajaxStart(function() { $(this).dialog('open'); })
.ajaxStop(function() { $(this).dialog('close'); });
//hover states on the static widgets
$('input:submit, .but').hover(
function() { $(this).addClass('ui-state-hover'); },
function() { $(this).removeClass('ui-state-hover'); }
);
//оформляем ссылки и кнопки
$('input:submit, .but').button();
});
</script>
<style type="text/css">
body{ font: 62.5% "Trebuchet MS", sans-serif;}
#leftbar1 {font-family:"Trebuchet MS";margin: 0 30px;}
#leftbar1 h2{clear:both;padding-top:40px;}
#leftbar1 label{width:130px;font-size:1.2em;}
#leftbar1 input{display:block;float:left;width:100px;}
#leftbar1 select{margin-right:20px;}
#leftbar1 input[type="checkbox"]{width:auto;margin:0;}
#filterOtchet p{padding-bottom:10px;float:left;}
#leftbar1 form h2 label{width:150px;}
.zebra tbody tr:nth-child(even) {
background: #f5f5f5;
-webkit-box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
-moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
}
#filterOtchet {background-color:#F2F2F2; border:1px solid #D6D6D6;padding:10px;width:100%;}
#gateTable { margin: 1em 0; border-collapse: collapse; width: 100%; }
#gateTable td, #itemTable th { border: 1px solid #eee; padding: .6em 10px; text-align: left; }
.edit{background: url('/img/icons/edit.png') no-repeat; height:16px; width:16px; cursor:pointer;display:inline-block;}
.tick{background: url('/img/icons/tick.png') no-repeat; height:16px; width:16px;display:inline-block;}
.document{background: url('/img/icons/page.png') no-repeat; height:16px; width:16px; cursor:pointer; display:block;}
.clear{clear:both;}
#switchFilter{cursor:pointer;text-decoration:underline;}
.zoomdoc{background: url('/img/icons/zoomdoc.png') no-repeat; height:16px; width:16px; display:inline-block; cursor:pointer;}
h1{padding-bottom:15px;}
h4{clear:both};
</style>
</head>
<body>
<div id="indicator" style="text-align:center;"><img src="/img/icons/indicator.gif" alt="идет загрузка" /></div>
<script type="text/javascript">
$('#indicator').dialog({
title: 'Идет загрузка',
autoOpen: false, modal: true, width: 200, height: 70
});
$('#indicator').dialog('open');
function tableitog()
{
var baly = $('tr[filtermatch!="false"]').find('td.kolvo');
var sum = 0;
for (var ii=0;ii<kol_vo.length;ii++){
sum += kol_vo[ii].innerHTML.replace(' ', '') * 1;
}
$('#tdkolvo').html(sum.toFixed(0));
</script>
<div id="wrapper">
<div id="content">
<?include_once('include_header.php');?>
<div class="clear"></div>
<table id="rolTable" class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header">
<th>количество в.</th>
<th>наличяе/отсутствие а.</th>
<th>наличяе/отсутствие R. </th>
</tr>
</thead>
<tbody>
<?
$itogo = 0;
if (count($sek_vor) > 0) {
foreach ($sek_vor as $key => $item) {?>
<tr>
<td class="kolvo"><?echo number_format($item['kol_vo'],0,'','');?></td>
<td><?=$item['Avtomatika'];?></td>
<td><?=$item['rcp1'];?></td>
</tr>
<? $itogo += $item['baly'];
} }?>
</tbody>
<tfoot>
<tr style="font-weight:bold;">
<td colspan="4">ИТОГО</td>
<td id="tdkolvo"><?echo number_format($itogo,0,'','' ), ' ';?></td>
</tr>
</tfoot>
</table>
<div id="bottom">
<div id="email">
<span class="icon_menu">
</span>
</div>
</div><!--end bottom-->
</div><!--end content-->
</div><!--end wrapper-->
</body>
</html>
Спустя 7 минут, 41 секунда (11.03.2012 - 13:59) Visman написал(а):
Раз несколько команд выполняешь в одном SQL запросы, команды должны разделяться точкой с запятой.
Спустя 15 часов, 48 минут, 57 секунд (12.03.2012 - 05:48) maksimon написал(а):
т.е. пред UPDATE поставить ";" и все?)) ...не помогло!!...
просто в самом MsSQL срабатывает!!
просто в самом MsSQL срабатывает!!

Спустя 12 минут, 49 секунд (12.03.2012 - 06:01) Visman написал(а):
CREATE TABLE #table_1 ( KodZakaz varchar(255), Vrtv varchar(255), AVT varchar (255), rcp1 varchar (255))
INSERT INTO #table_1 (KodZakaz, Vrtv, AVT, rcp1) Select Zakaz.kodZakaz , (Izdelaya .KodVorot) as Vrt , (Zakazano.kodzakazano) as AVT, (Izdelaya .rcp) as RCP1 from Zakaz
inner join Izdelaya on Izdelaya.KodZakaz=Zakaz.KodZakaz
left join Zakazano on Zakazano.KodZakaz=Zakaz.KodZakaz
and Zakazano.TipZakazano='AVT'
WHERE DataCehZakaz>='20110101' and DataCehZakaz<'20120201'
UPDATE #table_1 SET AVT=1 WHERE AVT!=0
SELECT COUNT (KodZakaz) as kod, (AVT) as avtomatika, rcp1 FROM #table_1 group by AVT, rcp1
DROP TABLE #table_1
Спустя 23 минуты, 34 секунды (12.03.2012 - 06:24) maksimon написал(а):
неа... не выходит!!((( а точно временные таблицы в php можно применить??
Спустя 34 минуты, 19 секунд (12.03.2012 - 06:59) Visman написал(а):
Цитата (maksimon @ 12.03.2012 - 11:24) |
а точно временные таблицы в php можно применить?? |
Спустя 5 часов, 17 минут, 9 секунд (12.03.2012 - 12:16) maksimon написал(а):
вообще ни как!!((
Спустя 16 минут, 1 секунда (12.03.2012 - 12:32) maksimon написал(а):
пишет вот что!!
Warning: odbc_fetch_array() [function.odbc-fetch-array]: No tuples available at this result index in C:\....\top_statistika_15.php on line 32
32: while ( $line = odbc_fetch_array( $rs ) )
Warning: odbc_fetch_array() [function.odbc-fetch-array]: No tuples available at this result index in C:\....\top_statistika_15.php on line 32
32: while ( $line = odbc_fetch_array( $rs ) )
Спустя 36 минут, 35 секунд (12.03.2012 - 13:08) Visman написал(а):
CREATE TABLE #table_1 ( KodZakaz varchar(255), Vrtv varchar(255), AVT varchar (255), rcp1 varchar (255))
INSERT INTO #table_1 (KodZakaz, Vrtv, AVT, rcp1) Select Zakaz.kodZakaz , (Izdelaya .KodVorot) as Vrt , (Zakazano.kodzakazano) as AVT, (Izdelaya .rcp) as RCP1 from Zakaz
inner join Izdelaya on Izdelaya.KodZakaz=Zakaz.KodZakaz
left join Zakazano on Zakazano.KodZakaz=Zakaz.KodZakaz
and Zakazano.TipZakazano='AVT'
WHERE DataCehZakaz>='20110101' and DataCehZakaz<'20120201'
UPDATE #table_1 SET AVT=1 WHERE AVT!=0
SELECT COUNT (KodZakaz) as kod, (AVT) as avtomatika, rcp1 FROM #table_1 group by AVT, rcp1
DROP TABLE #table_1
Все эти страшные запросы можно попробовать одним селектом. примерно таким (за точность не отвечаю):
Select COUNT(Zakaz.kodZakaz) AS kod , Izdelaya .KodVorot AS Vrt, if(Zakazano.kodzakazano != 0, 1, 0) AS AVT, Izdelaya.rcp AS RCP1
from Zakaz
inner join Izdelaya on (Izdelaya.KodZakaz=Zakaz.KodZakaz)
left join Zakazano on (Zakazano.KodZakaz=Zakaz.KodZakaz and Zakazano.TipZakazano='AVT')
WHERE DataCehZakaz>='20110101' and DataCehZakaz<'20120201'
GROUP BY AVT, rcp1
Спустя 4 минуты, 25 секунд (12.03.2012 - 13:13) Placido написал(а):
Del
--------------------------------------
Извиняюсь, не увидел, что это MsSQL.
--------------------------------------
Извиняюсь, не увидел, что это MsSQL.
Спустя 16 часов, 32 минуты, 18 секунд (13.03.2012 - 05:45) maksimon написал(а):
Select COUNT(Zakaz.kodZakaz) AS kod , Izdelaya .KodVorot AS Vrt,
if(Zakazano.kodzakazano != 0, 1, 0) AS AVT, Izdelaya.rcp AS RCP1 from Zakaz
inner join Izdelaya on (Izdelaya.KodZakaz=Zakaz.KodZakaz)
left join Zakazano on (Zakazano.KodZakaz=Zakaz.KodZakaz
and Zakazano.TipZakazano='AVT')WHERE DataCehZakaz>='20110101'
and DataCehZakaz<'20120201'GROUP BY AVT, rcp1
выдает ошибку на MsSQL server-е:
Сообщение 156, уровень 15, состояние 1, строка 2
Неправильный синтаксис около ключевого слова "if".
Сообщение 102, уровень 15, состояние 1, строка 2
Неправильный синтаксис около конструкции ",".
Спустя 18 минут, 7 секунд (13.03.2012 - 06:03) Visman написал(а):
Цитата (maksimon @ 13.03.2012 - 10:45) |
MsSQL server |
С этим я не работал.
У микрософта наверняка все как не у людей!?
Спустя 3 минуты, 16 секунд (13.03.2012 - 06:07) maksimon написал(а):
ясно!!

Спустя 35 секунд (13.03.2012 - 06:07) maksimon написал(а):
но все равно спасибо!! буду искать альтернативу своему запросу!!
Спустя 24 минуты, 7 секунд (13.03.2012 - 06:31) maksimon написал(а):
кто подскажет по MSSQL?? нужна альиернатива запроса с временной таблицей!!
Спустя 3 часа, 11 минут, 44 секунды (13.03.2012 - 09:43) sergeiss написал(а):
maksimon - мой совет - когда пишешь MSSQL, то вторую букву пиши БОЛЬШОЙ. Иначе большинство будет читать как MySQL
А это "две большие разницы".
И по делу.
В MSSQL (также как и в PostgreSQL) имеется очень удобная инструкция WITH. Почитай хэлп
С помощью этой штуковины ты можешь выбрать нужные тебе данные, т.е., по сути, создать временную таблицу. Тут же эти данные можешь использовать в запросе. И это будет вообще один запрос, а не несколько разных.
Удалять такую "временную таблицу" не надо.

И по делу.
В MSSQL (также как и в PostgreSQL) имеется очень удобная инструкция WITH. Почитай хэлп

Удалять такую "временную таблицу" не надо.
Спустя 25 минут, 12 секунд (13.03.2012 - 10:08) maksimon написал(а):
sergeiss
мне нужно для php кода, а он не съедает временные таблицы... и посему нужно это прописать подзапросами!! хз как это сделать!!
мне нужно для php кода, а он не съедает временные таблицы... и посему нужно это прописать подзапросами!! хз как это сделать!!

Спустя 5 минут, 36 секунд (13.03.2012 - 10:14) sergeiss написал(а):
Цитата (maksimon @ 13.03.2012 - 11:08) |
мне нужно для php кода, а он не съедает временные таблицы... и посему нужно это прописать подзапросами!! хз как это сделать!! |
Ты сам-то понял, что написал? ПХП к временным таблицам из MSSQL не имеет никакого отношения. Подобно тому, что сотрудники магазина около моего дома не имеют отношения к проблемам охоты на львов племени мумба-юмба, живущего где-то в экваториальной Африке

Я предложил тебе, как сделать правильный запрос. Если хочешь - думай, ищи инфо. Будут вопросы - спрашивай.
PS. ПХП работает только с окончательным результатом выборки данных из БД. И шкуру льва мы тоже можем увидеть в нашем магазине - если у племени мумба-юмба будет удачная охота и они потом продадут эту шкуру и её привезут в наш магазин. Но как именно они будут охотится, как её привезут - не волнует никого. Подобно этому ПХП совершенно не интересует, что там творится внутри сервера MSSQL.
Спустя 22 часа, 2 минуты, 10 секунд (14.03.2012 - 08:16) maksimon написал(а):
проблема решена! помогли на другом форуме!!! B)
вот решение:
вот решение:
Select
count(Zakaz.kodZakaz) as kod, case when Zakazano.kodzakazano != 0 then 1 else Zakazano.kodzakazano end as AVT
,Izdelaya.rcp as RCP1
from Zakaz
inner join Izdelaya on Izdelaya.KodZakaz=Zakaz.KodZakaz
left join Zakazano on Zakazano.KodZakaz=Zakaz.KodZakaz
and Zakazano.TipZakazano='AVT'
WHERE DataCehZakaz>='20110101'
and DataCehZakaz<'20120201'
group by case when Zakazano.kodzakazano != 0 then 1 else Zakazano.kodzakazano end
, Izdelaya.rcp